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.