Maybaygiare.org

Blog Network

file (1) – Linux man page

Name

file – determine file type

Synopsis

file file …

ficheiro-C

ficheiro

Descrição

esta página manual documenta a versão 5.04 do comando Ficheiro.

file tests each argument in an attempt to classify it. Existem três conjuntos de testes, realizados nesta ordem: testes do sistema de arquivos, testes mágicos e testes de sangue. O primeiro teste que tiver sucesso faz com que o tipo de arquivo seja impresso.

O tipo de impresso, normalmente, irá conter uma das palavras do texto (o arquivo contém somente a impressão de caracteres e algumas comuns caracteres de controle e isprobably seguro de leitura em um terminal ASCII), executável (o arquivo que contém o resultado da compilação de um programa em uma forma compreensível para alguns UNIXkernel ou outro), ou dados de significado a qualquer outra coisa (dados é, geralmente, ‘binário’ ou não-imprimível). Exceções são formatos de arquivos bem conhecidos (arquivos centrais, tararchives) que são conhecidos por conter dados binários. Ao modificar arquivos mágicos ou o próprio programa, certifique-se de preservar estas palavras-chave. Os utilizadores dependem de saber que todos os ficheiros legíveis de um directório têm a palavra “texto” impressa. Não faça como Berkeley fez e mude o texto dos comandos shell para script shell.

os testes do sistema de arquivos são baseados em examinar o retorno de uma chamada de Sistema stat(2). O programa verifica se o arquivo está vazio, ou se é algum tipo de arquivo especial. Qualquer dos tipos de arquivo conhecidos apropriado para o sistema que você está executando (sockets, links simbólicos, ou pipes nomeados (FIFOs) nesses sistemas thatimplement-los) são intuído se elas são definidas no arquivo de cabeçalho do sistema

A magia testes são usados para verificar arquivos com dados em particular fixo formatos. O exemplo canônico disto é um executável binário (programa compilado) a. out, cujo formato é definido em #include <a. out.h>
e, possivelmente #include <exec.h >
in The standard include directory. Estes arquivos têm um ‘número mágico’ armazenado em um lugar particular perto do início do arquivo que diz ao UNIX operatingsystem que o arquivo é um executável binário, e qual de vários tipos de arquivos. O conceito de “magia” foi aplicado por extensão a ficheiros de dados. Qualquer filewith some invariant identifier at a small fixed offset into the file can usually be described in this way. As informações que identificam estes ficheiros são lidas a partir do ficheiro magic compilado /usr/share/misc/magic.mgc, ou os arquivos no diretório /usr/share/misc/magic, se o arquivo compilado não existir. Além disso, se $HOME/.magico.mgc ou $HOME/.magic existe, ele será usado em preferência aos arquivos de magia do sistema. Se o / etc / magic existir, será utilizado juntamente com outros ficheiros mágicos.

Se um arquivo não corresponde a nenhuma das entradas no arquivo mágico, ele é examinado para ver se ele parece ser um arquivo de texto. ASCII, ISO-8859-x, não-ISO 8-bitextended-conjuntos de caracteres ASCII (como as usadas em Macintosh e IBM PC sistemas), codificado em UTF-8 Unicode, UTF-16 codificado em Unicode, e de caracteres EBCDIC setscan distinguem-se por diferentes intervalos e seqüências de bytes que constituem a impressão de texto em cada conjunto. Se um arquivo passa em qualquer um destes testes, itscharacter conjunto é relatado. ASCII, ISO-8859-x, UTF-8, e extended-ASCII arquivos são identificados como ‘texto’ porque eles serão principalmente legíveis em quase qualquer terminal; UTF-16 e EBCDIC são apenas ‘dados de caracteres’ porque, enquanto eles contêm texto, é o texto que vai precisar de Tradução antes que ele possa ser lido. Além disso, arquivo irá tentar determinar outras características de arquivos de tipo de texto. Se as linhas de um arquivo são terminadas por CR, CRLF, ou NEL, em vez do Unix-standard LF, isso será relatado. Também serão identificados os ficheiros que contenham sequências de escape incorporadas ou sobredimensionamento.

Uma vez que o arquivo tenha determinado o conjunto de caracteres usado em um arquivo de tipo de texto, ele vai tentar determinar em que língua o arquivo é escrito. As línguas procuram cordas específicas (cf. # include <names.h >
) que pode 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 troff(1), assim como a estrutura de palavra-chave indica um programa C. Estes testes são menos confiáveis do que os dois grupos anteriores, então eles são realizados por último. As rotinas do languagetest também testam para algumas miscellanias(como arquivos tar (1)).

qualquer arquivo que não possa ser identificado como tendo sido escrito em qualquer um dos conjuntos de caracteres listados acima é simplesmente dito ser ‘dados’.

opções

 -b, --brief

não pré-enviar nomes de ficheiros para linhas de saída (modo breve).

-c, –compile
Write a magic.ficheiro de saída mgc que contém uma versão pré-processada do ficheiro ou directório magic.

– c, — checking-printout
Cause a checking printout of the processed form of the magic file. Isto é normalmente usado em conjunto com a bandeira-m para depurar um novo ficheiro mágico antes de o empatar.

-e, — exclude testname
exclua o teste nomeado no testname da lista de testes feitos para determinar o tipo de arquivo. Os nomes de teste válidos são:

apptype
EMX tipo de aplicação (apenas EMX).

texto ‘ Vários tipos de ficheiros de texto (este teste irá tentar adivinhar a codificação de texto, independentemente da configuração da opção ‘codificação’).

encoding
Different text encodings for soft magic tests.

tokens ‘ procura tokens conhecidos dentro de arquivos de texto.

cdf ‘ imprime detalhes dos ficheiros de documentos compostos.

comprimir
verifica, e olha para dentro, arquivos comprimidos.

elf’ imprime detalhes do ficheiro ELF.

soft ‘ consulta arquivos mágicos.

tar’ examina os ficheiros tar.

-F, — separator separator
Use o texto especificado como o separador entre o nome do ficheiro e o resultado do ficheiro devolvido. O valor por omissão é ‘:’.

– f, — files-from namefile
Read the names of the files to be examined from namefile (one per line) before the argument list. Tanto o namefile como pelo menos um filenameargument devem estar presentes; para testar a entrada padrão, use ‘-‘ como um argumento de nome de arquivo.

-h, –no-dereference
opção faz com que as ligações simbólicas não sejam seguidas (em sistemas que suportam ligações simbólicas). Este é o padrão se a variável de ambiente POSIXLY_CORECT não for definida.

– i, –mime
faz com que o comando file produza strings do tipo mime em vez dos mais tradicionais legíveis por humanos. Assim, pode dizer ‘ texto / simples; charset=us-ascii ‘rather than ‘ ASCII text’. Para que esta opção funcione, o ficheiro altera a forma como lida com os ficheiros reconhecidos pelo próprio comando (como muitos dos tipos de ficheiros de texto, directórios, etc.), e faz uso de um ficheiro ‘magic’ alternativo. (Veja a seção de arquivos, abaixo).

–mime-type, –mime-encoding
Like-i, but print only the specified element (s).

-L, –dereference
opção faz com que as ligações simbólicas sejam seguidas, como a opção com nome semelhante em ls(1) (nos sistemas que suportam ligações simbólicas). Este é o padrão se o environmentvariable POSIXLY_CORT for definido.

-m, –magic-file magicfiles
especifique uma lista alternativa de arquivos e diretórios contendo magic. Isto pode ser um único item, ou uma lista separada por dois pontos. Se um arquivo magic compilado for encontrado em um arquivo ou diretório, ele será usado em vez disso.

– n, –no-pad
Don’T pad filenames so that they align in the output.

-n, –no-buffer
Force stdout a ser lavado após verificar cada ficheiro. Isto só é útil se verificar uma lista de ficheiros. Destina-se a ser usado por programas que querem filetypeoutput de um pipe.

– p, — preserve-date
On systems that support utime(2) or uvezes (2), attempt to preserve the access time of files analyzed, to pretend that file never read them.

– r, — raw
não traduza caracteres intragáveis para \ooo. Normalmente, o ficheiro traduz caracteres não-imprimíveis para a sua representação octal.

-s, –special-files
Normally, file only attempts to read and determine the type of argument files which stat (2) reports are ordinary files. Isso previne problemas, porque o envio de arquivos especiais pode ter consequências peculiares. A especificação da opção-s faz com que o ficheiro também leia os ficheiros de argumentos que são ficheiros especiais do bloco orcharacter. Isto é útil para determinar os tipos de Sistema de arquivos dos dados nas partições de disco raw, que são Arquivos especiais de bloco. Esta opção também faz com que o ficheiro não tenha em conta o tamanho do ficheiro, tal como relatado pelo stat(2), uma vez que em alguns sistemas ele relata um tamanho zero para as partições de disco raw.

-v, –version
imprime a versão do programa e sai.

-z, –uncompress
tente olhar dentro de arquivos comprimidos.

–help
Print a help message and exit.

Files

/usr/share/misc/magic.mgc

Default compiled list of magic.
/usr/share/misc/magic’ Directory containing default magic files.

Environment

the environment variable MAGIC can be used to set the default magic file name. Se essa variável estiver definida, então file não tentará abrir$HOME/.magico. file adds’.mgc’ ao valor desta variável, conforme apropriado. A variável de ambiente POSIXLY_CORRECT controla (nos sistemas que suportam ligações simbólicas), se o ficheiro irá tentar seguir ligações simbólicas ou não. Se definido, então o arquivo segue symlink, caso contrário, não. Isto é também controlado pelas opções-L e-H.

Veja também

magic (5), strings(1), OD(1), hexdump(1,) file(1posix)

Standards Conformance

acredita-se que este programa exceda a definição de arquivo da Interface System V(CMD), tão próximo quanto se pode determinar a partir da linguagem vaga nele contida.Seu comportamento é mais compatível com o programa System V de mesmo nome. Esta versão sabe mais magia, no entanto, por isso irá produzir diferentes (embora mais accurate) saída em muitos casos.

a única diferença significativa entre esta versão e o sistema V é que esta versão trata qualquer espaço branco como um delimitador, de modo que os espaços em placas devem ser escapados. Por exemplo,

>10 string language impress (imPRESS data)

em um arquivo mágico existente teria que ser alterado para

>10 string language\ impress (imPRESS data)

além disso, nesta versão, se uma cadeia de padrões contém uma barra invertida, ela deve ser escapada. For example

0 string \begindata Andrew Toolkit document

in an existing magic file would have to be changed to

0 string \\begindata Andrew Toolkit document

SunOS releases 3.2 e mais tarde da Sun Microsystems incluem um comando de arquivo derivado do System V one, mas com algumas extensões. A minha versão difere da do Sun apenas de formas menores. Ele inclui a extensão do operador’ &’, usado como, por exemplo,

>16 long&0x7fffffff >0 not stripped

Magic Directory

as entradas de arquivos mágicos foram coletadas de várias fontes, principalmente USENET, e contribuíram por vários autores. Christos Zoulas (endereço abaixo) irá recolher entradas adicionais ou corrigidas de ficheiros mágicos. Uma consolidação de entradas de arquivo mágico será distribuído periodicamente.

A ordem de entradas no ficheiro mágico é significativa. Dependendo do sistema que você está usando, a ordem que eles são colocados juntos pode ser incorreta. Se o seu comando antigo de ficheiros usar um ficheiro mágico, mantenha o ficheiro mágico antigo por perto para efeitos de comparação (mude o seu nome para /usr/share/misc/magic.orig).

Exemplos

$ file file.c file /dev/{wd0a,hda}file.c: C program textfile: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),

vinculado dinamicamente (usa shared libs), despojado

/dev/wd0a: bloco especial (0/0)
/dev/hda: bloco especial (3/0)

$ arquivo -s /dev/wd0{b,d}
/dev/wd0b: dados
/dev/wd0d: x86 boot sector

History

there has been a file command in every UNIX since at least Research Version 4 (man page dated November, 1973). A versão do sistema V introduziu uma importante alteração: a lista externa de tipos mágicos. Isto abrandou ligeiramente o programa, mas tornou-o muito mais flexível.

Este programa, com base no Sistema V versão, foi escrito por Ian Darwin <[email protected]> sem olhar para ninguém, o código-fonte.John Gilmore revisou o código extensivamente, tornando-o melhor do que a primeira versão. Geoff Collyer encontrou várias inadequações e forneceu algumas fileentrias mágicas. Contribuições do operador’ & ‘ por Rob McMahon, [email protected], 1989.Guy Harris, [email protected], fez muitas mudanças de 1993 para o presente.desenvolvimento primário e manutenção desde 1990 até ao presente por Christos Zoulas ([email protected] alterada por Chris Lowth, [email protected], 2000: Lidar com a opção-i de saída de strings tipo mime, usando um arquivo mágico alternativo e lógica interna.alterada por Eric Fischer ([email protected]), July, 2000, to identify character codes and attempt to identify the languages of non-ASCII files.alterada por Reuben Thomas ([email protected]), de 2007 a 2008, para melhorar o suporte MIME e mesclar MIME e non-MIME magic, diretórios de suporte, bem como arquivos ofmagic, aplicar muitas correções de bugs e melhorar o sistema de compilação.

a lista de contribuintes para o directório ‘magic’ (ficheiros magic) é demasiado longa para ser aqui incluída. Sabes quem és, obrigado. Muitos contribuidores estão listados nos arquivos de código.

aviso legal

Copyright © Ian F. Darwin, Toronto, Canadá, 1986-1999. Coberto pelo padrão Berkeley Software Distribution copyright; veja o arquivo LEGAL.NOTICE in the source distribution.

o tar dos ficheiros.h E is_tar.c foram escritos por John Gilmore de seu programa tar(1) de domínio público, e não são cobertos pela licença acima.

Bugs

deve haver uma maneira melhor de automatizar a construção do arquivo mágico a partir de todas as glop em Magdir. O que é isto?

file usa vários algoritmos que favorecem a velocidade sobre a precisão, portanto, pode ser enganado sobre o conteúdo de arquivos de texto.

O suporte para arquivos de texto (principalmente para linguagens de programação) é simplista, ineficiente e requer recompilação para atualizar.

a lista de palavras-chave em ascmagic provavelmente pertence ao ficheiro Magic. Isto poderia ser feito usando alguma palavra-chave como ‘ * ‘ para o valor de deslocamento.

queixa-se de conflitos nas entradas do ficheiro mágico. Fazer uma regra para que as entradas mágicas ordenem com base na posição do ficheiro em vez da posição no ficheiro mágico?

esta página de manual, e particularmente esta secção, é demasiado longa.

código de retorno

ficheiro retorna 0 no sucesso, e não zero no erro.

Se o arquivo nomeado pelo operando do arquivo não existe, não pode ser lido, ou o tipo do arquivo nomeado pelo operando do arquivo não pode ser determinado, isso não é considerado um erro que afeta o estado de saída.

disponibilidade

pode obter a última versão do autor original por FTP anónimo em ftp.astron.com na pasta/pub/file / file-X. YZ.alcatrao.BSD 9 de outubro de 2008 BSD

Deixe uma resposta

O seu endereço de email não será publicado.