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.