Como determinar o tipo de ficheiro dun ficheiro usando Linux

A maioría das persoas miran a extensión dun ficheiro e entón adiviñen o tipo de ficheiro desta extensión. Por exemplo, cando vexa un ficheiro cunha extensión de gif, jpg, bmp ou png, pensaría nun arquivo de imaxe e cando vexa un ficheiro cunha extensión de zip asume que o ficheiro foi comprimido usando unha utilidade de compresión zip .

En verdade, un ficheiro pode ter unha extensión pero ser algo completamente diferente e se un ficheiro non ten unha extensión como pode determinar o tipo de ficheiro?

En Linux pode descubrir o tipo de ficheiro real usando o comando file.

Como funciona o comando Arquivo

Segundo a documentación, o comando file executa tres conxuntos de probas contra un ficheiro:

O primeiro conxunto de probas para devolver unha resposta válida fai que o tipo de ficheiro sexa impreso.

As probas do sistema de ficheiros examinan o regreso dunha chamada ao sistema estatístico. O programa comproba se o ficheiro está baleiro e se se trata dun ficheiro especial. Se o tipo de ficheiro se atopa no ficheiro de cabeceira do sistema, será devolto como o tipo de ficheiro válido.

As probas máxicas comproban os contidos dun ficheiro e especificamente uns poucos bytes ao comezo que axudan a determinar o tipo de ficheiro. Hai varios ficheiros que se usan para combinar un ficheiro co seu tipo de ficheiro e están gardados en / etc / magic, / usr / share / misc / magic.mgc, / usr / share / misc / magic. Pode anular estes ficheiros colocando un ficheiro no seu cartafol persoal chamado $ HOME / .magic.mgc ou $ HOME / .magic.

As probas finais son probas lingüísticas. O ficheiro está verificado para ver se se trata dun ficheiro de texto. Ao probar os primeiros bytes dun ficheiro pode deducir se se trata dun ASCII, UTF-8, UTF-16 ou noutro formato que determina o ficheiro como ficheiro de texto. Unha vez que se deduce o conxunto de caracteres, o ficheiro comproba diferentes idiomas. Por exemplo, está o programa ac file.

Se ningunha das probas funciona, a saída é simplemente datos.

Como usar o comando Arquivo

O comando ficheiro pode usarse como segue:

ficheiro nome de ficheiro

Por exemplo, imaxine que ten un ficheiro chamado file1 executarías o seguinte comando:

ficheiro file1

A saída será algo así:

file1: datos de imaxe PNG, 640 x 341, RGB de 8 bits / cor, non entrelazados

A saída que se mostra determina o ficheiro 1 para ser un ficheiro de imaxe ou para ser un ficheiro de rede portátil (PNG) máis exacto.

Os diferentes tipos de arquivos producen resultados diferentes da seguinte forma:

Personaliza a saída do comando Arquivo

Por defecto, o comando file fornece o nome do ficheiro e, a continuación, todos os detalles sobre o ficheiro. Se só desexa os detalles sen que o nome do ficheiro sexa repetido use o seguinte conmutador:

ficheiro -b file1

A saída será algo así:

Datos de imaxe PNG, 640 x 341, RGB de 8 bits / cor, non entrelazados

Tamén pode cambiar o delimitador entre o nome do ficheiro eo tipo.

De xeito predeterminado, o delimitador é un punto de coma (:) pero pode cambialo a calquera cousa que desexe, como o símbolo do tubo do seguinte xeito:

ficheiro -F '|' ficheiro1

A saída agora será algo así:

file1 | Datos de imaxe PNG, 640 x 341, RGB de 8 bits / cor, non entrelazados

Manipulación de varios arquivos

De xeito predeterminado, usarás o comando file nun único ficheiro. Non obstante, pode especificar un nome de ficheiro que contén unha lista de ficheiros que debe procesar o comando file:

Por exemplo, abra un ficheiro chamado testfiles usando o editor nano e engade estas liñas a el:

Garda o ficheiro e executa o seguinte comando de ficheiro:

ficheiro -f testfiles

A saída será algo así:

/ etc / passwd: texto ASCII
/etc/pam.conf: texto ASCII
directorio / etc / opt:

Arquivos comprimidos

De xeito predeterminado cando executas o comando file contra un ficheiro comprimido, verás un resultado como este:

file.zip: datos de arquivo ZIP, polo menos V2.0 para extraer

Mentres isto indica que o ficheiro é un arquivo non sabe o contido do ficheiro. Podes ver dentro do arquivo zip para ver os tipos de ficheiro dos ficheiros dentro do ficheiro comprimido.

O seguinte comando executa o comando file contra os ficheiros dentro dun ficheiro ZIP:

ficheiro -z nome de ficheiro

A saída mostrará agora os tipos de ficheiros do arquivo.

Resumo

En xeral, a maioría da xente só pode usar o comando file para atopar o tipo de ficheiro básico, pero para saber máis sobre todas as posibilidades que ofrece o comando de ficheiro escriba o seguinte na xanela do terminal:

ficheiro do home