Determine um tipo de arquivo usando o comando 'arquivo' do Linux

A maioria das pessoas olha para o extensão de um arquivo e adivinhe o tipo de arquivo dessa extensão. Por exemplo, quando você vê um arquivo com uma extensão de gif, jpg, bmp ou png, você pensa em um arquivo de imagem, e quando você vê um arquivo com uma extensão de zip, assume que o arquivo foi compactado usando um utilitário de compressão zip.

Um arquivo pode usar uma extensão, mas ser algo totalmente diferente. Linux não usa extensões de arquivo; em vez disso, o tipo do arquivo é parte do nome do arquivo. Para descobrir o verdadeiro tipo de arquivo, use o Arquivo comando.

Comando de arquivo do Linux

Como funciona o comando 'arquivo'

O comando file executa três conjuntos de testes em um arquivo:

  • Testes de sistema de arquivos
  • Testes de magia
  • Testes de linguagem

O primeiro conjunto de testes para retornar uma resposta válida solicita o tipo de arquivo a ser impresso.

Os testes do sistema de arquivos examinam o retorno de uma chamada de sistema stat. O programa verifica se o arquivo está vazio e se é um arquivo especial. Se o tipo de arquivo for encontrado no arquivo de cabeçalho do sistema, ele será retornado como o tipo de arquivo válido.

Os testes mágicos verificam o conteúdo de um arquivo e, especificamente, alguns bytes no início que ajudam a determinar o tipo de arquivo. Vários arquivos são usados ​​para ajudar a combinar um arquivo com seu tipo de arquivo e são armazenados em:

  • /etc/magic
  • /usr/share/misc/magic.mgc
  • /usr/share/misc/magic

Substitua esses arquivos colocando um arquivo em sua pasta pessoal chamado $ HOME / .magic.mgc ou $ HOME / .magic.

Os testes finais são testes de linguagem. O arquivo é verificado para ver se é um arquivo de texto. Ao testar os primeiros bytes de um arquivo, o teste deduz se o arquivo é ASCII, UTF-8, UTF-16 ou outro formato que identifica o arquivo como um arquivo de texto. Quando o conjunto de caracteres é deduzido, o arquivo é testado em diferentes idiomas.

Como usar o comando 'arquivo'

o Arquivo comando assume a seguinte forma:

nome do arquivo do arquivo. 

Por exemplo, para verificar o tipo de título de um arquivo touch.svg, execute o seguinte comando:

arquivo touch.svg. 

A saída é mais ou menos assim:

  • touch.svg: imagem de gráficos vetoriais escalonáveis ​​em SVG

Tipos de arquivo diferentes produzem resultados diferentes, por exemplo:

  • Tipo de arquivo ODS: Planilha OpenDocument
  • Tipo de arquivo PDF: Documento PDF, versão 1.4
  • Tipo de arquivo CSV: Texto ASCII, com linhas muito longas, com indicadores de linha CRLF

Tratamento de vários arquivos

Por padrão, o comando file funciona com um único arquivo. Você pode, no entanto, especificar um nome de arquivo que contenha uma lista de arquivos a serem processados ​​pelo Arquivo comando.

Por exemplo, abra um arquivo chamado testfiles usando o editor nano e adicione estas linhas a ele:

  • /etc/passwd
  • /etc/pam.conf
  • /etc/opt

Salve o arquivo e execute o seguinte comando de arquivo:

arquivo -f testfiles. 

A saída será mais ou menos assim:

  • / etc / passwd: texto ASCII
  • /etc/pam.conf: texto ASCII
  • / etc / opt: diretório

Outro método é executar o Arquivo comando uma vez, mas especificando vários alvos. Por exemplo:

arquivo / etc / passwd /etc/pam.conf / etc / opt

A saída será mais ou menos assim:

  • / etc / passwd: texto ASCII
  • /etc/pam.conf: texto ASCII
  • / etc / opt: diretório

Os curingas padrão também funcionam. Por exemplo, para testar todos os arquivos no diretório de trabalho atual, use:

Arquivo *

Para testar os diretórios que começam com a letra D (diferencia maiúsculas de minúsculas), tente o seguinte:

arquivo D *

Os resultados podem ser Desktop, Documentos e Downloads, por exemplo.

Arquivos compactados

Quando você executa o Arquivo comando em um arquivo compactado, você vê uma saída parecida com esta:

  • file.zip: dados de arquivo ZIP, pelo menos V2.0 para extrair

Embora este resultado diga que o arquivo é um arquivo compactado, você não conhece o conteúdo do arquivo. Olhe dentro do arquivo zip para ver os tipos de arquivo dos arquivos dentro do arquivo compactado. O comando a seguir executa o comando file nos arquivos dentro de um arquivo ZIP:

arquivo -z nome do arquivo. 

A saída agora mostra os tipos de arquivo de arquivos no arquivo.