Comando file no Linux (verifica tipo de arquivo) [Guia Básico]

O comando file no Linux é utilizado para se determinar qual é o tipo de arquivo informado como parâmetro com base no Magic Number (dois primeiros bytes).

Ao contrário do Windows, as extensões de arquivo nada significam no Linux. O comando file faz três tipos de checagem para determinar qual é o tipo do arquivo:

  • Teste de sistema de arquivos;
  • Teste de Magic Number;
  • Teste de Linguagem

O primeiro teste de sistema de arquivos é feito para determinar se o arquivo é um arquivo comum, um diretório, um link, um dispositivo, um socket de conexão, etc. No Linux absolutamente tudo é um arquivo. O tipo de arquivo no sistema de arquivos determina se ele é um arquivo comum ou outro tipo especial.

O segundo teste de Magic Number verifica os dois primeiros bytes do arquivo para determinar o seu tipo. Existe uma convenção na computação que determina que os dois primeiros bytes do arquivo devem conter um código que indica o seu tipo. Por exemplo, os scripts começam com o código “#!”, seguido do caminho completo do interpretador que irá interpretar e executar o script.

O terceiro teste, uma vez que foi determinado que o arquivo é um programa, script ou código fonte, indica qual é a linguagem do programa.

Exemplos:

$ file teste1.c
teste1.c: C source, UTF-8 Unicode text
$ file teste1
teste1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=f63857e5ce1a259a5228b1ea15ced24867583793, not stripped
$ file backup.sh 
backup.sh: Bourne-Again shell script, ASCII text executable
$ file supermercado.xz 
supermercado.xz: XZ compressed data
$ file MAPA_MENTAL_LPI.pdf
MAPA_MENTAL_LPI.pdf: PDF document, version 1.6

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe