Skip to content

Como determinar o tipo de arquivo de um arquivo usando Linux

13 de abril de 2021

A maioria das pessoas olha para a extensão de um arquivo e, em seguida, adivinha o tipo de arquivo dessa extensão. Por exemplo, ao ver um arquivo com a extensão gif, jpg, bmp ou png, você pensa em um arquivo de imagem e quando vê um arquivo com a extensão zip, presume que o arquivo foi compactado usando uma compactação zip Utilitário. 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.

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: arquivo nome do arquivo

type = “code”> Por exemplo, para verificar o tipo de título de um arquivo touch.svg, execute o seguinte comando: arquivo touch.svg

type = “code”> 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: file -f testfiles

type = “code”> A saída será algo 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 seguinte comando executa o comando file nos arquivos dentro de um arquivo ZIP: file -z filename

type = “code”> A saída agora mostra os tipos de arquivo dos arquivos no arquivo.