Banco de dados de comandos de arquivos e identificação de arquivos de texto

1

Por favor, deixe-me saber se abaixo de duas afirmações estão corretas ou não:

A pasta /usr/share/mime/magic tem um banco de dados / tabela que me dará quais são os formatos de arquivo possíveis atuais (saídas que eu posso obter quando digito o comando file e o sigo por um nome de arquivo).

Sempre que a saída do comando file contiver a palavra "texto", ela se refere a algo que você pode ler com um visualizador de texto, e qualquer coisa sem "texto" é algum tipo de binário.

    
por user2543622 21.08.2014 / 17:54

2 respostas

4

Folder /usr/share/mime/magic has a database/table that will give me what are the current possible file formats (outputs that I can get when I type "file" command and follow it by a file).

Correto, exceto que /usr/share/mime/magic não é o diretório que file usa: este arquivo é usado apenas para o banco de dados do tipo MIME .

Da manpage do file : "A informação que identifica estes arquivos é lida no arquivo mágico compilado /usr/share/file/misc/magic.mgc, ou os arquivos no diretório / usr / share / file / misc / magic se o arquivo compilado não existir. "

E, de fato, no meu sistema Arch Linux, esse arquivo pertence ao pacote file .

Whenever "file" command output contains the word "text" it refers to something that you can read with a text viewer, and anything without "text" is some kind of binary.

Parece correto (tentei encontrar um contraexemplo, mas não consegui).

    
por 21.08.2014 / 18:28
3

A localização do banco de dados file aparece como dependente da instalação / versão. A versão linuxmanpages.com de file(1) diz:

FILES

/usr/share/file/magic.mgc
    Default compiled list of magic numbers
/usr/share/file/magic
    Default list of magic numbers
/usr/share/file/magic.mime.mgc
    Default compiled list of magic numbers, used to output mime types when the -i option is specified.
/usr/share/file/magic.mime
    Default list of magic numbers, used to output mime types when the -i option is specified.
/etc/magic
    Local additions to magic wisdom.

ao passo que, no Cygwin e no Debian, file(1) diz

FILES

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

Para confundir ainda mais as coisas, no Debian, /usr/share/misc/magic é um link simbólico para /usr/share/file/magic , que é um diretório vazio, enquanto, no Cygwin, /usr/share/file/magic é um link simbólico para /usr/share/misc/magic , que é um arquivo bastante grande (> 600K). Então eu fiz o experimento óbvio:

file /usr/share/misc/magic
/usr/share/misc/magic: Non-ISO extended-ASCII text, with overstriking

Eu olhei para ele com vi e parecia texto em ASCII (mas eu não examinei todas as 17 mil linhas). “Com overstriking” parece indicar a presença de backspaces; veja

echo -e "1 =\b/ 2" | file -
/dev/stdin: ASCII text, with overstriking

então eu pesquisei /usr/share/misc/magic para backspaces e encontrei dois.

    
por 21.08.2014 / 19:06