file (Unix)

De Wikipedia, la enciclopedia libre


file es un comando de la familia de los sistemas operativos Unix, que permite detectar el tipo y formato de un archivo. Para lograrlo, analiza el encabezado, el número mágico o bien el contenido que el archivo posea.[1]

Descripción[editar]

El comando file es una utilidad que realiza una serie de pruebas (test) para determinar el tipo y formato de un archivo. Más precisamente las pruebas son tres, y la primera que permita alcanzar un resultado hace que el análisis finalice.

Se detallan a continuación dichas pruebas, en el orden en que se llevan a cabo por este comando:

  1. Sistema de archivos: se intenta determinar si el archivo a examinar es un archivo del sistema por medio de la función (system call) stat. Gracias a esta prueba se puede determinar si es un dispositivo, enlace simbólico, una tubería, etc.
  2. Números mágicos: Se intenta determinar el tipo, analizando determinados bytes ubicados en específicas posiciones dentro del archivo. Estos bytes se los denomina números mágicos, y suelen estar al comienzo de la cabecera. La información para realizar dicho análisis figura en el archivo /usr/share/misc/magic.mgc.
  3. Prueba de sintaxis: esta última prueba consiste en determinar que tipo de sintaxis posee un archivo de texto. Esta prueba solo se realiza sobre los archivos que se haya determinado que sean texto plano. Básicamente consiste en buscar la presencia de determinadas palabras claves que permiten identificar la sintaxis usada dentro de dicho archivo.

Modo de uso[editar]

La invocación del comando file tiene el siguiente formato:

  • file [PARÁMETROS] ARCHIVO...


Los parámetros posibles, según la especificación POSIX, son:

-d
Realiza las pruebas de sintaxis y de números mágicos del sistema. Esta es la opción por defecto, alternativamente se puede utilizar -m o -M
-h
Si el archivo a analizar es un enlace simbólico, lo identifica como tal.
-i
No brindar una clasificación adicional más allá de la del tipo básico.
-m archivo
Realiza una prueba adicional de números mágicos con el archivo indicado
-M archivo
Similar a -m, salvo que no realiza las pruebas de sintaxis y de números mágicos por defecto del sistema.


En los sistemas operativos GNU/Linux, este comando fue enriquecido con muchos más parámetros, entre los cuales se encuentran:

-b
No imprime el nombre del archivo en cada resultado.
-i
Muestra el tipo mime junto con la codificación utilizada.
-e prueba
Excluye de realizar la prueba indicada. Entre las opciones que podemos indicarle, se encuentran:
apptype
Tipo de aplicación EMX (solo para EMX).
ascii
Varios tipos de archivos de texto. Esta prueba intenta determinar la codificación, más allá de la indicada dentro del propio archivo.
encoding
Varios tipos de codificaciones para la prueba suave de números mágicos.
tokens
Busca cadenas conocidas dentro de los archivos de texto.
cdf
Muestra detalles de los archivos CDF (Compound Document Files). POr ejemplo SVG, XHTML, etc.
compress
Analiza y busca dentro de los archivos comprimidos.
elf
Muestra detalles de archivos ELF.
soft
Consulta de archivos mágicos.
tar
Analiza archivos Tar.
--mime-type
similar a -i, salvo porque solo muestra el tipo mime.
-z
Examina los archivos comprimidos.

Ejemplos[editar]

Visualizar información del tipo y formato de un archivo:

file archivo.mp3

Resultado:

archivo.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1,  48 kbps, 44.1 kHz, Stereo


Visualizar solo el tipo mime de un archivo:

file --mime-type archivo.mp3

Resultado:

archivo.mp3: audio/mpeg

Véase también[editar]

Enlaces externos[editar]

Referencias[editar]