Este artigo ou secção contém uma lista de referências no fim do texto, mas as suas fontes não são claras porque não são citadas no corpo do artigo, o que compromete a confiabilidade das informações. (abril de 2017) |
file é um programa de computador padrão do sistema operacional Unix para determinar o tipo de dados contido em um arquivo (ou o tipo de arquivo). Apareceu UNIX System V com mudanças muito importantes, sendo a mais notável a remoção das informações do tipo de arquivo para um arquivo de texto externo, ao invés de compilar estas informações no próprio arquivo binário.
A maioria das distribuições Linux e BSD contém uma reimplementação livre que foi escrita por Ian Darwin. Ela foi expandida por Geoff Collyer em 1989 e desde então teve contribuições de muitos outros, como Guy Harris, Chris Lowth e Eric Fischer.
A Single UNIX Specification (SUS) especifica que uma série de testes devem ser executados no arquivo especificado na linha de comando:
Os testes sensíveis à posição são normalmente implementados comparando várias posições dentro do arquivo com uma base de dados textual de números mágicos. Esta base de dados é implementada em um arquivo chamado "magic", localizado geralmente em /etc/magic, /usr/share/file/magic ou um local similar. Este método difere de outros mais simples como verificar a extensão dos arquivos e esquemas como MIME.
A SUS define como requisitos as seguintes opções:
Outros sistemas operacionais Unix ou Unix-like podem adicionar opções extras além dessas.
# file arquivo.c arquivo.c: C program text
# file programa
programa: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked
(uses shared libs), stripped
# file /dev/wd0a /dev/wd0a: block special (0/0)
# file -s /dev/hda1 /dev/hda1: Linux/i386 ext2 filesystem
# file -s /dev/hda5 /dev/hda5: Linux/i386 swap file
# file comprimido.gz
comprimido.gz: gzip compressed data, deflated, original filename, `compressed', last
modified: Thu Jan 26 14:08:23 2006, os: Unix
# file dados.ppm dados.ppm: Netpbm PPM "rawbits" image data