Per saber de quin tipus és un fitxer, normalment ens guiem per la seva extensió. Per exemple, sabem que un fitxer «zip» és un comprimit i un «png» és una imatge. Però, d’una banda, és impossible conèixer tots els tipus de fitxers que hi ha segons la seva extensió. Però a més, si agafem un fitxer «zip» i li canviem l’extensió per «txt» podríem pensar que es tracta d’un fitxer de text, tot i que continua sent un fitxer comprimit. Per resoldre aquests (i altres) dubtes amb els tipus de fitxers, des de terminal tenim l’ordre «file», que s’utilitza de la forma següent:
file nom_fitxer
Jo l’utilitzo, per exemple, quan em trobo un fitxer que no puc obrir amb el programa que utilitzo habitualment per als fitxers amb la seva extensió, quan un programa no llegeix bé alguna part d’un fitxer de text (per si no té la codificació de caràcter que s’espera), etc.
L’ordre «file» fa tres comprovacions per conèixer el tipus d’un fitxer, i mostra per pantalla el primer que li dóna un resultat correcte és el que mostra:
- Comprovació del FileSystem. Li permet detectar si és un fitxer buit, un directori, un enllaç, etc.
- Comprovació binària. Mira dins del fitxer, buscant si alguna capçalera propera a l’inici li indica quin tipus de fitxer és. En aquesta comprovació pot esbrinar, per exemple, si un fitxer és un «zip», un «png» o un binari (i per a quina arquitectura).
- Comprovació de text. En aquesta comprovació, es mira si és un fitxer de text, i s’intenta identificar quina codificació de caràcters té i, en cas de trobar-ho, esbrina més sobre el fitxer segons la seva estructura interna (pot saber si és un font de C, un html, etc.).
L’ordre «file» ens retorna com a resultat el que li resulti de la primera d’aquestes comprovacions que acabi amb èxit. Si no pot esbrinar quin tipus de fitxer és, simplement ens diu que és un fitxer de «data».
A continuació us poso uns exemples del que retorna el «file» per a diversos tipus de fitxers. Veureu que hi ha casos on l’ordre «file» ha utilitzat la comprovació de FileSystem (els tres primers exemples), altres amb la comprovació binària (els quatre següents) i alguns amb la comprovació de text (els quatre darrers):
Tipus | Missatge del «file» |
---|---|
Directori | directory |
Enllaç | symbolic link to `xxxx’ |
Fitxer buit | empty |
Programa binari 32 bits | ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV)… |
Programa binari 64 bits | ELF 64-bit LSB executable, x86-64, version 1 (SYSV)… |
Fitxer «zip» | Zip archive data, at least v1.0 to extract |
Fitxer «png» | PNG image, 186 x 50, 8-bit/color RGBA, non-interlaced |
Text de codificació desconeguda | ASCII text |
Text codificació UTF-8 | UTF-8 Unicode text |
Text codificació ISO8859 | ISO-8859 text |
Fitxer «html» | HTML document text |
Com veieu, els missatges són en general molt clarificadors de què és cada fitxer.
Aprofitant aquesta anotació, he modificat el recull d’ordres de terminal de la nostra documentació per afegir-hi precisament l’ordre «file».
2 comments
Ara mateix em vénen al cap un seguit de situacions en què m’hagués sigut realment útil i m’hagués estalviat algun maldecap o percepcions de l’ordre de quart mil·lenni que per més que t’ho miris no aconsegueixes entendre. Gràcies per l’apunt!
Doncs sí. A mi m’ha ajudat a resoldre uns quants problemes a la feina. I fins i tot a casa m’ha anat bé algun cop.