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:
- probas do sistema de ficheiros
- probas máxicas
- ensaios de idiomas
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:
- Tipo de ficheiro ISO - DOS / MBR sector de arranque ISO 9660 CD-Rom datos do sistema de ficheiros 'label' (arranque); partición 2: ID = 0xef, start-CHS (0x3ff, 254,63), end-CHS (0x3ff, 4,63) inicializador 1496, 4736 sectores
- Tipo de ficheiro ODS - Folla de cálculo de OpenDocument
- Tipo de ficheiro PDF - Documento PDF, versión 1.4
- Tipo de ficheiro CSV - Texto ASCII, con longas liñas, con indicadores de liña CRLF
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:
- / etc / passwd
- /etc/pam.conf
- / etc / opt
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