fbpx

Comandos Linux – Comando file

Comando file Linux

Atualizado: 05/04/2019 por Computer Hope

comando de arquivo

Em sistemas operacionais do tipo Unix, o comando file relata o tipo de arquivo .

Este documento cobre a versão do arquivo Linux .

Descrição

O comando file testa cada argumento na tentativa de classificá-lo. Existem três conjuntos de testes, executados nesta ordem: testes do sistema de arquivos, testes mágicos e testes de linguagem. O primeiro teste bem-sucedido faz com que o tipo de arquivo seja impresso.

O tipo impresso geralmente contém uma das palavras texto (o arquivo contém apenas caracteres de impressão e alguns caracteres de controle comuns e provavelmente é seguro para leitura em um terminal ASCII ), executável (o arquivo contém o resultado da compilação de um programa em um formulário compreensível para um kernel ) ou dados que significam qualquer outra coisa (geralmente binária ou não imprimível ). Exceções são formatos de arquivo conhecidos (arquivos principais, arquivos tar ) que são conhecidos por conter dados binários.

Os testes do sistema de arquivos são baseados no exame do retorno de uma chamada de sistema stat . O programa verifica se o arquivo está vazio ou se é algum tipo de arquivo especial. Quaisquer tipos de arquivos conhecidos apropriados para o sistema em que você está executando (soquetes, links simbólicos ou pipes nomeados ( FIFO ) nos sistemas que os implementam) serão intuídos se estiverem definidos no arquivo de cabeçalho do sistema <sys / stat.h> .

Os testes mágicos são usados ​​para verificar arquivos com dados em formatos fixos específicos. O exemplo canônico disso é um arquivo binário executável (programa compilado) a.out , cujo formato é definido em <elf.h> , <a.out.h> e possivelmente <exec.h> no diretório de inclusão padrão. Esses arquivos têm um “número mágico” armazenado em um local específico próximo ao início do arquivo que informa ao sistema operacional que o arquivo é um executável binário e qual de vários tipos. O conceito de “mágica” foi aplicado por extensão aos arquivos de dados. Qualquer arquivo com algum identificador invariável em um pequeno deslocamento fixo no arquivo geralmente pode ser descrito dessa maneira. As informações que identificam esses arquivos são lidas em / etc / magic e no arquivo mágico compilado /usr/share/misc/magic.mgc , ou nos arquivos do diretório / usr / share / misc / magic, se o arquivo compilado não existir. Além disso, se $ HOME / .magic.mgc ou $ HOME / .magic existir, ele será usado preferencialmente aos arquivos mágicos do sistema.

Se um arquivo não corresponder a nenhuma das entradas do arquivo mágico, ele será examinado para ver se parece ser um arquivo de texto. Conjuntos de caracteres ASCII , ISO -8859-x, não ISO 8 bits estendidos ASCII (como aqueles usados ​​em sistemas Macintosh e IBM PC ), Unicode codificado em UTF-8, Unicode codificado em UTF-8, Unicode codificado em UTF-16 e conjuntos de caracteres EBCDIC pode ser distinguido pelos diferentes intervalos e sequências de bytes que constituem texto imprimível em cada conjunto. Se um arquivo passa em algum desses testes, seu conjunto de caracteres é relatado. Os arquivos ASCII, ISO-8859-x, UTF-8 e ASCII estendido são identificados como “texto” porque eles serão mais legíveis em praticamente qualquer terminal; UTF-16 e EBCDIC são apenas “dados de caracteres” porque, embora contenham texto, é um texto que exigirá tradução antes que possa ser lido. Além disso, o arquivo tentará determinar outras características dos arquivos do tipo texto. Se as linhas de um arquivo forem terminadas por CR , CR LF ou NEL, em vez do LF padrão do Unix, isso será relatado. Os arquivos que contêm sequências de escape incorporadas ou overstriking também serão identificados.

Depois que o arquivo determinar o conjunto de caracteres usado em um arquivo do tipo texto, ele tentará determinar em qual idioma o arquivo foi gravado. Os testes de idioma procuram por seqüências específicas (cf. <names.h> ) que podem aparecer em qualquer lugar nos primeiros blocos de um arquivo. Por exemplo, a palavra-chave .br indica que o arquivo provavelmente é um arquivo de entrada de troff , assim como a palavra-chave struct indica um programa em C. Esses testes são menos confiáveis ​​que os dois grupos anteriores e, portanto, são realizados por último. As rotinas de teste de idioma também testam algumas miscelâneas (como arquivos tar).

Qualquer arquivo que não possa ser identificado como tendo sido gravado em qualquer um dos conjuntos de caracteres listados acima é considerado “dados”.

Sintaxe

  arquivo [-bchiklLNnprsvz0] [--apple] [--mime-encoding] [--mime-type] 
      [-e testname ] [-F separator ] [-f namefile ] 
      arquivo [-m magicfiles ] ...
  arquivo -C [-m magicfiles ]
  arquivo [--help]

Opções

-b , –briefNão coloque nomes de arquivos nas linhas de saída (modo breve).
-C , –compileEscreva um arquivo de saída magic.mgc que contenha uma versão pré-analisada do arquivo ou diretório mágico.
-c , –check-printoutCause uma impressão de verificação da forma analisada do arquivo mágico. Essa opção geralmente é usada em conjunto com o sinalizador -m para depurar um novo arquivo mágico antes de instalá-lo.
-e , –exclude testnameExclua o teste nomeado em testname da lista de testes feitos para determinar o tipo de arquivo. Os nomes de teste válidos são:

apptypeTipo de aplicativo EMX (apenas no EMX).
asciiVários tipos de arquivos de texto (este teste tentará adivinhar a codificação de texto, independentemente da configuração da opção ‘codificação’).
codificaçãoDiferentes codificações de texto para testes de soft magic.
fichasIgnorado para compatibilidade com versões anteriores .
cdfImprime detalhes dos arquivos de documentos compostos.
comprimirVerifica e examina os arquivos compactados.
duendeImprime detalhes do arquivo ELF.
suaveConsulta arquivos mágicos.
alcatrãoExamina arquivos tar.
-F , separador separadorUse o separador de sequência especificado como o separador entre o nome do arquivo e o resultado do arquivo retornado. O padrão é ‘ : ‘.
-f , –files-from namefileLeia os nomes dos arquivos a serem examinados no arquivo de nomes (um por linha) antes da lista de argumentos. O arquivo de nome ou pelo menos um argumento de nome de arquivo deve estar presente; para testar a entrada padrão, use ‘  ‘ como argumento do nome do arquivo. Observe que o arquivo de nome é desembrulhado e os nomes de arquivos incluídos são processados ​​quando essa opção é encontrada e antes que qualquer outro processamento de opções seja concluído. Essa opção permite processar várias listas de arquivos com diferentes argumentos de linha de comando na mesma chamada de arquivo. Portanto, se você deseja definir o delimitador, é necessário fazê-lo antes de especificar a lista de arquivos, como: ” -F @ -f namefile “, em vez de: ” -f namefile -F @ “.
-h , – sem desreferenciaA opção faz com que os links simbólicos não sejam seguidos (em sistemas que suportam links simbólicos). Esta opção é o padrão se a variável de ambiente POSIXLY_CORRECT não estiver definida.
-i , –mimeFaz com que o comando file produza seqüências de caracteres do tipo MIME, em vez das mais tradicionais legíveis por humanos. Assim, pode dizer ‘ texto / simples; charset = us-ascii ’em vez de ” texto ASCII “.
–mime-type , –mime-codificaçãoComo -i , mas imprima apenas o (s) elemento (s) especificado (s).
-k , – mantendo-seNão pare na primeira partida, continue. As correspondências subsequentes terão a sequência ‘ \ 012- ‘ anexada. (Se você deseja uma nova linha, consulte a opção -r .)
-l , –listImprima informações sobre a força de cada padrão mágico.
-L, –dereferenceA opção faz com que os links simbólicos sejam seguidos, como a opção com o mesmo nome em ls (em sistemas que suportam links simbólicos). Esta opção é o padrão se a variável de ambiente POSIXLY_CORRECT estiver definida.
-euMostra a lista de padrões classificados na ordem usada para a correspondência.
-m , –ficheiros mágicos de arquivo mágicoEspecifique uma lista alternativa de arquivos e diretórios contendo mágica. Essa opção pode ser um único item ou uma lista separada por dois pontos. Se um arquivo mágico compilado for encontrado ao lado de um arquivo ou diretório, ele será usado.
-N , – sem almofadaNão preencha os nomes dos arquivos para que eles se alinhem na saída.
-n , –no-bufferForce o stdout a ser liberado após a verificação de cada arquivo. Esta opção é útil apenas se estiver verificando uma lista de arquivos. Ele deve ser usado por programas que desejam saída de tipo de arquivo de um canal.
-p , –preserve-dateEm sistemas que suportam utime ou utimes , tente preservar o tempo de acesso dos arquivos analisados, fingindo que o arquivo nunca os lê.
-r , –rawNão traduza caracteres não imprimíveis para \ ooo . Normalmente, o arquivo converte caracteres não imprimíveis em suas representações octais .
-s , –especial-arquivosNormalmente, o arquivo tenta apenas ler e determinar o tipo de arquivos de argumento cujos relatórios estatísticos são arquivos comuns. Isso evita problemas, porque a leitura de arquivos especiais pode ter consequências peculiares. A especificação da opção -s faz com que o arquivo também leia arquivos de argumentos que são arquivos especiais de bloco ou caractere. Esta opção é útil para determinar os tipos de sistema de arquivos dos dados nas partições de disco bruto, que são arquivos especiais de bloco. Essa opção também faz com que o arquivo desconsidere o tamanho do arquivo, conforme relatado pelo stat, pois em alguns sistemas ele reporta um tamanho zero para partições de disco bruto.
-v , –versionImprima a versão do programa e saia.
-z , –uncompressTente procurar dentro de arquivos compactados.
-0 , –print0Emita um caractere nulo ‘\ 0’ após o final do nome do arquivo, o que é útil se, por exemplo, você desejar cortar a saída. Esta opção não afeta o separador, que ainda é impresso.
–SocorroImprima uma mensagem de ajuda e saia.

Exemplos

  Arquivo *

Abaixo está um exemplo do que pode aparecer ao executar um arquivo com um curinga para todos os arquivos:

  shutdown.htm: texto do documento HTML
 si.htm: texto do documento HTML
 side0.gif: dados de imagem GIF, versão 89a, 107 x 18
 robots.txt: texto ASCII, com terminadores de linha CRLF
 routehlp.htm: texto do documento HTML
 Diretório rss: setgid
  arquivo * .txt

Abaixo está um exemplo do que pode aparecer ao executar o exemplo acima; executando o comando file listando qualquer arquivo que termine com .txt :

  form.txt: texto de notícias ou correio
 friend.txt: texto de notícias ou correio
 ihave.txt: texto de notícias ou correio
 index.txt: texto do programa Java ASCII, com 
 linhas muito longas, com terminadores de linha CRLF
 jargon.txt: texto de notícias ou correio
 news.txt: texto de programa ASCII C estendido não ISO, com linhas muito longas, 
 com terminadores de linha CRLF
 newsdata.txt: texto em inglês ASCII estendido não ISO, com linhas muito longas, com terminadores de linha CRLF
 qad.txt: texto de notícias ou correio
 refrence.txt: texto de notícias ou correio
 robots.txt: texto ASCII, com terminadores de linha CRLF
 stopwords.txt: texto em inglês ASCII, com terminadores de linha CRLF
 yhelp.txt: texto de notícias ou correio

ls – lista o conteúdo de um diretório ou diretórios.

18 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.