Comando file

Comando file

O comando file determina o tipo de arquivo.

Neste exemplo vou abrir um arquivo qualquer no meu sistema.

[caption id="" align="aligncenter" width="400"]Exemplo do comando file  file man_file.odt
[/caption]

Agora vou fazer outro exemplo usando o parâmetro .

[caption id="" align="aligncenter" width="400"]Exemplo do comando file agragado com pipe less file -l |less[/caption]

Esse comando mostra uma lista de padrões e sua força classificadas decrescente de mágica.
Agora associando esse comando com o grep.

[caption id="" align="aligncenter" width="400"]exemplo do comando file agragado com pipe grep -i file -l  |grep -i openssh[/caption]

Para mais informação man file.

 NOME

file – determinar o tipo de arquivo


SINOPSE

file  [-bcEhiklLNnprsvzZ0] [–apple] [–extension] [–mime-encoding] [–mime-type] [ -e TestName] [separador -F] [-f namefile] [-m arquivo magicfiles] [-P name = value] … arquivo -C [-m magicfiles] arquivo [–help]

DESCRIÇÃO

Este manual versão documentos de página “5,25” do arquivo arquivo de comandos, testa cada argumento na tentativa de classificá-lo.  Há três conjuntos de testes, realizados nesta ordem: testes do sistema de arquivos, testes de mágica, e testes de linguagem.  O primeiro teste que sucede faz com que o tipo de arquivo a ser impresso.  O tipo de impresso será geralmente contêm um do texto palavras (o arquivo contém somente caracteres de impressão e alguns caracteres de controle comum e é provavelmente seguro para ler em um terminal ASCII), executável (o arquivo ente com o resultado da compilação de um programa no uma forma compreensível para alguns kernel do UNIX ou outra), ou os dados que significa que qualquer outra coisa (os dados é geralmente “ binary ” ou não-imprimíveis).  As exceções são os formatos conhecidos de arquivo (arquivos de núcleo, arquivos tar) que são conhecidos por conter dados binários.  Ao modificar arquivos mágicas ou o próprio programa, certifique-se de preservar essas palavras-chave.  Os usuários dependem de saber que todos os arquivos legíveis em um diretório tem a palavra “ texto ” impresso.  Não faça como Berkeley fez e mudança “ comandos shell texto ” para “ shell script ”.  Os testes do sistema de arquivos são baseados em examinar o retorno de um stat (2) chamada de sistema.  O programa verifica se o arquivo estiver vazio, ou se é algum tipo de arquivo especial.  Quaisquer tipos de arquivo conhecidos apropriados para o sistema estiver a funcionar a (soquetes, links simbólicos, ou pipes nomeados (FIFOs) sobre os sistemas que as implementam) são intuiu se eles são definidos no arquivo de cabeçalho do sistema .  Os testes mágicos são usados ​​para verificar arquivos com dados em particular formatos fixos.  O exemplo canônico este é um arquivo binário executável a.out (programa compilado), cujo formato é definido em , e possivelmente no padrão incluem diretório.  Esses arquivos têm um “ número mágico ” armazenado em um determinado lugar próximo ao início do arquivo que diz ao sistema operacional UNIX que o arquivo é um cutable exe- binário, e quais dos vários tipos do mesmo.  O conceito de um “ mágico ” foi aplicado por extensão para arquivos de dados.  Qualquer arquivo com algum identificador invariante em uma pequena fixo deslocamento no arquivo geralmente pode ser descrito desta maneira.  A informação identificando esses arquivos são lidos do /usr/share/misc/magic.mgc magia arquivo compilado, ou os arquivos no diretório / usr / share / misc / magic se o arquivo compilado não existe.  Além disso, se $ HOME / .magic.mgc ou $ HOME / .magic existe, ele será usado em preferência aos arquivos Magic System.  Se um arquivo não corresponde a qualquer das entradas no arquivo de mágica, é examinado para ver se ele parece ser um arquivo de texto.  ASCII, ISO-8859-x, 8 bits conjuntos de caracteres estendido ASCII ISO não (tais como aqueles usados ​​em sistemas de PC Macintosh e IBM), UTF-8-codificado Unicode, UTF-16 codificado em Unicode e conjuntos de caracteres EBCDIC podem ser distinguidas pelos diferentes gamas e sequências de bytes que constituem texto imprimível em cada conjunto.  Se um arquivo passa algum destes testes, o seu conjunto de caracteres é relatado.  ASCII, ISO-8859-x, UTF-8, e estendido ASCII arquivos são identificados como “ texto ”, porque eles vão ser principalmente legíveis em quase qualquer terminal;  UTF-16 e EBCDIC são apenas “ dados de caracteres ” porque, embora eles contêm texto, é o texto que vai exigir a tradução antes que ele possa ser lido.  Em adi- ção, arquivo tentará determinar outras características dos arquivos do tipo texto.  Se as linhas de um arquivo são terminadas por CR, CRLF, ou NEL, em vez da LF Unix-padrão, isso será relatado.  Arquivos que con- ter incorporados sequências de escape ou overstriking também serão identificados.  Uma vez arquivo determinou o conjunto de caracteres usado em um arquivo do tipo texto, ele tentará determinar em que língua o arquivo é gravado.  Os testes linguísticas olhar para cordas particulares (cf. ) que pode aparecer em qualquer lugar nos primeiros blocos de um arquivo.  Por exemplo, a palavra-chave .br indica que o arquivo é mais provável um troff (1) arquivo de entrada, assim como a palavra-chave struct indica um programa C.  Estes testes são menos fiáveis ​​do que os dois grupos anteriores, por isso eles são realizados passado.  As rotinas de teste de idioma também testar por alguma miscelânea (tais como tar (1) arquivos).  Qualquer arquivo que não pode ser identificada como tendo sido escrito em qualquer um dos conjuntos de caracteres listados acima é simplesmente dito ser “ data ”. OPÇÕES –apple faz com que o comando de arquivo para a saída do código de tipo de arquivo e criador como o usado por MacOS mais velhos versões.  O código é composto por oito letras, a primeira descrevendo o tipo de ficheiro, este último o criador.

-b, –brief

Não preceder os nomes de arquivo para linhas de saída (modo breve).

-C, –compile

 Escrever magic.mgc arquivo de saída que contém uma versão pré-analisado da magia arquivo ou diretório.

-c, –checking-impressão

Causa uma impressão de verificação do formulário analisado do arquivo de magia.  Isso geralmente é usado em conjunto com o sinalizador

-m

 para depurar um novo arquivo de mágica antes de instalá-lo.

-E On

 erros do sistema de arquivos (file not found etc), em vez de lidar com o erro como saída regular como mandatos POSIX e continue indo, um problema mensagem de erro e sair.

-e, TestName –exclude

Excluir o teste nomeado em TestName da lista de testes feitos para determinar o tipo de arquivo.  nomes de testes válidos são: APPTYPE tipo de aplicação EMX (apenas em EMX).  ascii Vários tipos de arquivos de texto (este teste irá tentar adivinhar a codificação de texto, independentemente da definição da opção `codificação ‘).  codificação diferente codificações de texto para testes mágicos macios.  fichas ignorado para compatibilidade com versões anteriores.  cdf imprime os detalhes do Composto arquivos de documentos.  compactar Verifica se há, e olha arquivos dentro, compactados.  Impressões elf detalhes do arquivo ELF.  macio Consulta arquivos mágicas.  tar Examina arquivos tar.

–extension

Imprimir uma lista separada por barra de extensões válidos para o tipo de arquivo encontrado.

-F, –separator separador

Use o texto especificado como o separador entre o nome do arquivo e o arquivo de resultado retornado.  O padrão é `: ‘.

 -f, –files-

De namefile ler os nomes dos arquivos a ser examinado a partir namefile (um por linha) antes da lista de argumentos.  Ou namefile ou pelo menos um argumento nome do arquivo deve estar presente;  para testar a entrada padrão, use ‘-‘ como um argumento de nome de arquivo.  Por favor note que namefile é desembrulhada e os nomes de arquivos anexos são processados ​​quando esta opção é encontrado e antes de quaisquer outras opções de processamento é feito.  Isso permite processar várias listas de arquivos com diferentes argumentos de linha de comando na mesma invocação arquivo.  Assim, se você deseja definir o delimitador, você precisa fazê-lo antes de especificar a lista de arquivos, como: “ -F @ -f namefile ”, em vez de: “ -f namefile -F @ ‘.’

– h, –no-dereference .

Opção faz com que links simbólicos para não ser seguido (em sistemas que suportam a links simbólicos).  Este é o padrão se POSIXLY_CORRECT variável de ambiente não está definido.

 -i, –mime Faz com que o comando de arquivo para cordas de tipo mime de saída, em vez de os humanos legível mais tradicionais.  Assim, pode dizer `text / plain;  charset = us-ascii ‘ao invés de “ texto ASCII’ ‘. –

-mime-type, –mime-encoding Como -i, mas imprimir apenas o elemento especificado (s).

 -k, –keep curso Don’ t parada no primeiro jogo, continue.  partidas subsequentes será têm a string `\ 012- ‘prefixado.  (Se você quiser uma linha recém, consulte a opção -r.) O padrão de mágica com a maior força (veja a opção -l) vem em primeiro lugar.

-l, –list .

Mostra uma lista de padrões e sua força classificadas decrescente de mágica (4) a força que é usado para a correspondência (veja também a opção-k).

-L, opção –dereference.

Faz com que links simbólicos a serem seguidas, como a opção com o mesmo nome em ls (1) (em sistemas que suportam simbólica links).  Este é o padrão se o POSIXLY_CORRECT variável de ambiente é definida.

-m, Magicfiles –magic.

 De arquivo Especifique uma lista alternativa de arquivos e diretórios que contêm magia.  Este pode ser um único item, ou uma lista separada por dois pontos.  Se um arquivo de magia compilado é encontrado ao lado de um arquivo ou pasta, ele será usado em seu lugar.

-N, –no-Pad.

 Não nomes almofada de modo que eles se alinham na saída.

-n, –no-Tampão.

 Força stdout para ser liberado depois de verificar cada arquivo.  Isto só é útil se verificando uma lista de arquivos.  Pretende-se para ser usado por programas que querem saída filetype de uma tubulação.

-p, –preserve-Date.

Em sistemas que suportam utime (3) ou utimes (2) , tentativa de preservar o tempo de acesso de arquivos analisados, fingir que arquivo nunca lê-los.

-P, –parameter name = valor Definir vários limites de parâmetros.

Nome padrão Explicação indir limite de 15 recursão para o nome de 30 limite de contagem de uso de magia indireta para o nome / uso magia elf_notes 256 notas ELF max processados ​​elf_phnum 128 secções de programa max ELF elf_shnum processadas 32768 seções max ELF processados ​​limite de comprimento regex 8192 para pesquisas regex.

 -r, –raw não traduzir caracteres não imprimíveis para \ ooo.

Normalmente arquivo converte caracteres não imprimíveis para a sua representação octal.

 -s, –special-Arquivos Normalmente, arquivo somente tenta ler e determinar o tipo de ficheiros argumento que stat (2) relatórios são arquivos comuns.  Isso evita problemas, porque a leitura de arquivos especiais podem ter consequências mentiroso pecu-.  Especificando a opção -s faz com que arquivo para também ler arquivos de argumentos que são bloco ou de caracteres arquivos especiais.  Isso é útil para determinar os tipos de sistemas de arquivos de dados em partições de disco raw, que são arquivos especiais de bloco.  Esta opção também faz com que arquivo para ignorar o tamanho do arquivo conforme relatado pelo stat (2) uma vez que em alguns sistemas ele relata um tamanho zero para partições de disco raw -v, –version Exibe a versão do programa e sai -z,.. – -uncompress Tente olhar arquivos dentro comprimido. Z, –uncompress-noreport Tente olhar arquivos dentro comprimido, mas relatar informações sobre o conteúdo não só a compressão.

-0, saída –print0 um caractere nulo ‘\ 0’ depois o fim do nome do ficheiro.  Agradável para corte (1) de saída.  Isso não afeta o separador, que ainda é impresso.

–help Imprime uma mensagem de ajuda e sai. FILES padrão /usr/share/misc/magic.mgc lista compilada de magia.  / usr / share / misc / Directório mágica contendo arquivos mágicas padrão.


AMBIENTE

 O ambiente MAGIC variável pode ser usada para definir o nome do arquivo magic padrão.  Se essa variável é definida, em seguida, arquivo não tentará abrir $ HOME / .magic. Arquivo adiciona “ .mgc ” para o valor desta variável, consoante os casos.  No entanto, o arquivo tem que existir para que file.mime a ser consideradas.  Os controles POSIXLY_CORRECT variáveis ​​de ambiente (em sistemas que suportam links simbólicos), se o arquivo vai tentar seguir links simbólicos ou não.  Se configurados, o arquivo seguinte link simbólico, caso contrário, não.  Isto também é controlada pelas opções -L e -H.


VER TAMBÉM

mágico (5) , hexdump (1) , OD (1) , cordas (1) , fstyp (8) padrões de conformidade Este programa é acreditado para ultrapassar o sistema V Interface Definition of ARQUIVO (CMD), tão próximo quanto se pode determinar a partir da linguagem vaga nele contidas.  O seu comportamento é mais compatível com o programa de System V com o mesmo nome.  Esta versão conhece mais magia, no entanto, por isso vai pro- duzir saída diferente (embora mais preciso) em muitos casos.  A única diferença significativa entre esta versão e System V é que esta versão trata qualquer espaço em branco como um delimitador, de modo que os espaços em cadeias de caracteres padrão deve ser escapado.  Por exemplo,> 10 cordas linguagem Impress (Impress dados) em um arquivo de magia existente teria de ser alterado para> 10 cordas idioma \ impress (Impress dados) Além disso, nesta versão, se uma cadeia padrão contém uma barra invertida, deve ser escapado.  Por exemplo 0 texto \ begindata documento Andrew Toolkit em um arquivo de magia existente teria que ser alterado para 0 cadeia \\ begindata documento Andrew Toolkit SunOS libera 3.2 e mais tarde da Sun Microsystems incluem um comando de arquivo derivado do System V, mas com alguns extensões.  Esta versão difere da Sun apenas em formas menores.  Ele inclui a extensão do operador `& ‘, utilizado como, por exemplo,> 16 long & 0x7fffffff> 0 não descascada MAGIC 


DIRETÓRIO 

O arquivo magic entradas foram coletados de várias fontes, principalmente USENET, e contribuiu por vários autores.  Christos Zoulas (endereço abaixo) irá recolher entradas de arquivo de magia adicionais ou corrigidos.  A consolidação das entradas do arquivo mágicas será distribuído periodicamente.  A ordem das entradas no arquivo de magia é significativo.  Dependendo de qual sistema você está usando, a fim de que eles estão juntos pode ser incorreta.  Se o seu comando arquivo antigo usa um arquivo de mágica, manter o arquivo velha magia em torno de fins de comparação (renomeá-lo para /usr/share/misc/magic.orig). 


EXEMPLOS

arquivo file.c $ file / dev / {wd0a, hda} file.c: programa C arquivo de texto: ELF 32-bit LSB executável, Intel 80386, versão 1 (SYSV), vinculado dinamicamente (usa bibliotecas compartilhadas), despojado / dev / wd0a: bloco especial (0/0) / dev / hda : bloco especial (3/0) $ file -s / dev / wd0 {b, d} / dev / wd0b: dados / dev / wd0d: x86 $ file setor de boot -s / dev / hda {, 1,2,3 , 4,5,6,7,8,9,10} / dev / hda: setor de inicialização x86 / dev / hda1: Linux / i386 ext2 sistema de arquivos / dev / hda2: setor de inicialização x86 / dev / hda3: setor de inicialização x86, estendida tabela de partição / dev / hda4: Linux / i386 ext2 sistema de arquivos / dev / hda5: Linux / i386 arquivo de swap / dev / hda6: Linux / i386 arquivo de swap / dev / hda7: Linux / i386 arquivo de swap / dev / hda8: Linux / arquivo de troca i386 / dev / hda9: empty / dev / hda10: file file.c -i vazia $ file / dev / {wd0a, hda} file.c: text / xc arquivo: application / x-executável / dev / hda: / x-não-regulares em arquivo application / dev / wd0a: application / x-não-regulares-file.


 HISTÓRIA

Houve um comando de arquivo em todos os UNIX desde pelo menos Research versão 4 (página man datado de novembro de 1973).  A versão System V introduziu uma grande mudança significativa: a lista externa de tipos de mágicas.  Isso retardou o programa para baixo um pouco, mas fez muito mais flexível.  Este programa, com base na versão System V, foi escrito por Ian Darwin <ian@darwinsys.com> sem olhar para o código-fonte de qualquer outra pessoa.  John Gilmore revisto o código extensivamente, tornando-o melhor do que a primeira versão.  Geoff Collyer encontradas várias inadequações e forneceu algumas entradas de arquivo de mágica.  Contribuições do `operador & ‘por Rob McMa- hon, <cudcv@warwick.ac.uk>, 1989. Guy Harris, <guy@netapp.com>, fez muitas mudanças a partir de 1993 até o presente.  1989. desenvolvimento primário e manutenção desde 1990 até ao presente por Christos Zoulas <christos@astron.com>.  Alteradas por Chris Lowth <chris@lowth.com>, 2000: lidar com a opção -i para cordas de tipo mime de saída, usando um arquivo de magia alternativo e lógica interna.  Alteradas por Eric Fischer <enf@pobox.com>, de julho de 2000, para identificar códigos de cará- ter e tentar identificar as línguas dos arquivos não-ASCII.  Alteradas por Reuben Thomas <rrt@sc3d.org> 2007-2011, para melhorar a porta MIME apoio, fundir MIME e MIME não-mágica, diretórios de apoio, bem como arquivos de magia, aplicar muitas correções de bugs, atualização e corrigir um monte de magia, melhorar o sistema de construção, melhorar a documentação, e reescrever Ings o Python bind- em Python puro.  A lista de contribuintes para o diretório `mágico ‘(arquivos mágicos) é muito longo para incluir aqui.  Você sabe quem você é;  obrigado.  Muitos contribuidores estão listados nos arquivos de origem. </rrt@sc3d.org></enf@pobox.com></chris@lowth.com></christos@astron.com></guy@netapp.com></cudcv@warwick.ac.uk></ian@darwinsys.com>


AVISO LEGAL 

Copyright (c) Ian F. Darwin, Toronto, Canadá, 1986-1999.  Coberto por direitos de autor padrão Berkeley Software Distribution;  veja o arquivo COPYING na distribuição fonte.  Os arquivos tar.h e está _ tar.c foram escritos por John Gilmore da sua pu- lic-domain (1) tar programa, e não são cobertos pela licença acima.


CÓDIGO DE RETORNO 

retornos de arquivos 0 em caso de sucesso, e diferente de zero em caso de erro. 


PROBLEMAS

Por favor reportar bugs e enviar patches para o bug tracker em http://bugs.gw.com/ ou a lista de discussão em <file@mx.gw.com> (visite http://mx.gw.com / / listinfo / arquivo carteiro primeiro a inscrever). tODO saída Fix para que os testes para bandeiras MIME e Apple não são necessários em todo o lugar, e a saída real é feito somente em um só lugar.  Esta precisa de um design.  Sugestão: empurrar possíveis saídas para uma lista, em seguida, escolher o valor de última empurrou (a mais específica, espera-se) no final, ou usar um padrão, se a lista está vazia.  Isso não deve abrandar avaliação.  A manipulação de MAGIC_CONTINUE ea impressão \ 012- entre as entradas é desajeitado e complicado;  refatorar e centralizar.  Alguns dos a lógica de codificação é codificado em encoding.c e pode ser transferido para os arquivos de mágica, se tivéssemos uma: anotação charset Continue para esmagar todos os bugs mágicas.  Ver Debian BTS para uma boa fonte.  Armazenar cadeias arbitrariamente longa, por exemplo para padrões% s, de modo a que eles possam ser impressos.  Corrige Debian bug # 271672.  Isso pode ser feito através da atribuição cordas cando em um pool de corda, armazenar o conjunto de cadeia no final do arquivo de magia e convertendo todos os ponteiros de cadeia para as compensações relativas a partir do agrupamento de cadeia.  Adicionar sintaxe para deslocamentos relativos após nível atual (Debian bug # 466037).  Faça arquivo de trabalho -ki, ou seja, dar vários tipos de MIME.  Adicionar uma biblioteca de zip para que possamos espiar dentro documentos Office2007 para imprimir mais detalhes sobre seu conteúdo.  Adicionar uma opção para imprimir URLs para as fontes das descrições do arquivo.  Combine pesquisas de script e adicionar uma forma de mapear nomes executáveis ​​para tipos MIME (por exemplo, tem um valor mágico para: mime que faz com que a cadeia resultante a ser pesquisado em uma tabela).  Isso evitaria adicionando a mesma magia repetidamente para cada novo interpretador de hash-bang.  Quando um descritor de arquivo está disponível, podemos pular e ajustar o buffer em vez do gerenciamento de buffer hacky que fazemos agora.  Fix “ nome ” e “ use ” para verificar a consistência em tempo de compilação (em duplicado “ nome ”, “ use ” apontando para indefinido “ nome ”).  Faça “ nome ” / “ use ” mais eficiente, mantendo uma lista ordenada de nomes.  -Caso especial ^ para virar ordenação no analisador para que ele não tem que ser escapado, e documentá-lo.  Se os deslocamentos especificados internamente no arquivo exceder o tamanho do buffer (variável howmany em file.h), então nós não procuram esse deslocamento, mas desistiu.  Seria melhor se gerências tampão foi feito quando o descritor de arquivo está disponível para que mover o arquivo.  É preciso ter cuidado, porque embora este tem um desempenho (e, portanto, considerações de segurança).</file@mx.gw.com>


 DISPONIBILIDADE

Você pode obter versão mais recente do autor original pelo Anonymous FTP em ftp.astron.com na /pub/file/file-X.YZ.tar diretório. gz.  FreeBSD 10.3 11 de setembro de 2015 FreeBSD 10.3

Anúncios