El teu blog de Linux en català

Coneix el tipus d'un fitxer des de terminal

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.

A vegades, els fitxers no són el que semblen

A vegades, els fitxers no són el que semblen

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:

  1. Comprovació del FileSystem. Li permet detectar si és un fitxer buit, un directori, un enllaç, etc.
  2. 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).
  3. 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

    • Joan on 22 de setembre de 2011 at 16:18

    Reply

    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!

      • oriolsbd on 22 de setembre de 2011 at 17:08
      • Author

      Reply

      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.

Deixa un comentari

Your email address will not be published.