El comando file en Linux: identificar el tipo de archivo

Introducción

En el día a día de un administrador de sistemas o un desarrollador, es frecuente encontrarse con archivos cuyo tipo no es evidente solo por su nombre o extensión. El comando file de Linux permite identificar rápidamente el tipo de dato que contiene un archivo, basándose en su contenido real y no en su nombre.

¿Qué hace el comando file?

El comando file realiza una serie de pruebas mágicas (magic numbers) y consulta su base de datos de firmas para determinar si un archivo es un documento de texto, una imagen, un ejecutable, un archivo comprimido, etc. Su salida es una descripción legible que ayuda a decidir el siguiente paso a tomar.

Sintaxis básica

El uso más sencillo es:

file nombre_del_archivo

Se pueden pasar varios archivos a la vez:

file archivo1 archivo2 archivo3

También funciona con entrada estándar mediante el uso de - como nombre de archivo.

Opciones más útiles

  • -b: muestra solo la descripción, sin el nombre del archivo.
  • -i: output tipo MIME (por ejemplo, text/plain; charset=us-ascii).
  • -L: sigue enlaces simbólicos y analiza el archivo al que apuntan.
  • -z: busca dentro de archivos comprimidos para identificar su contenido.
  • -f archivo: lee los nombres de los archivos a analizar desde un archivo de lista.

Ejemplos prácticos

Identificar una imagen:

file foto.jpg

Salida típica:

foto.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 1920x1080, components 3

Determinar el tipo MIME de un documento:

file -i informe.pdf

Salida:

informe.pdf: application/pdf; charset=binary

Analizar un archivo comprimido sin descomprimirlo:

file -z backup.tar.gz

Salida:

backup.tar.gz: gzip compressed data, was "tar.archive", last modified: Mon Sep 30 12:00:00 2025, max compression, OS: Unix

Usar la opción -b para obtener solo la descripción:

file -b script.sh

Salida:

Bourne-Again shell script, ASCII text executable

Interpretación de la salida

La salida de file suele constar de dos partes separadas por dos puntos: el nombre del archivo y la descripción. Cuando se usa -b o se procesa la salida mediante scripts, es útil extraer solo la segunda parte para tomar decisiones automatizadas.

Limitaciones y consejos

Aunque file es muy fiable, no es infalible. Archivos muy pequeños o con firmas ambiguas pueden ser clasificados incorrectamente. En esos casos, combinar file con otras herramientas como hexdump o strings puede ofrecer más claridad. Además, mantener actualizada la base de datos de firmas (paquete file en la distribución) garantiza la detección de nuevos tipos de archivo.

Conclusión

El comando file es una herramienta esencial para cualquier usuario de Linux que necesite saber rápidamente qué tipo de dato maneja. Su simplicidad, rapidez y la riqueza de opciones lo convierten en un aliado indispensable en tareas de administración, depuración y automatización.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol