El comando file es una de las herramientas más útiles y subestimadas de Linux para identificar el tipo real de un archivo a partir de su contenido, no solo por su extensión. En 2026 sigue siendo esencial para los administradores, desarrolladores y usuarios que quieren detectar rápidamente si un archivo es texto, binario, comprimido o algo distinto a lo esperado.
A diferencia de mirar solo el nombre del archivo, file analiza su estructura interna y devuelve una descripción bastante fiable. Eso lo convierte en un recurso ideal cuando trabajas con archivos desconocidos, descargas dudosas o formatos mal etiquetados.
¿Qué hace el comando file?
El comando file determina el tipo de un archivo leyendo su contenido y comparándolo con firmas conocidas del sistema. Eso permite saber si un fichero es texto plano, un ejecutable, un archivo comprimido o incluso un formato más específico, como Markdown o un archivo ZIP.
Su gran ventaja es que no se deja engañar por la extensión. Un archivo llamado documento.txt puede no ser texto, y file te lo dirá de inmediato. Por eso es tan útil para auditorías rápidas, depuración y administración diaria.
Primeros ejemplos
Supongamos que estás en tu directorio de proyecto y quieres inspeccionar varios archivos:
cd ~/project
file README.md
file Dockerfile
file example.zip
Una salida típica sería:
README.md: Markdown document, UTF-8 text
Dockerfile: ASCII text
example.zip: Zip archive data, at least v2.0 to extract
Aquí se ve claramente cómo file reconoce README.md como documento Markdown, Dockerfile como texto ASCII y example.zip como un archivo ZIP. Eso demuestra que el comando no depende del nombre, sino del contenido.
¿Cómo identificar los archivos por contenido?
Ahora vamos con un ejemplo más interesante. Crea un archivo de texto con extensión .txt:
echo "This is a text file" > example.txt
file example.txt
La salida sería algo como:
example.txt: ASCII text
Aunque el archivo termina en .txt, lo importante es que file confirma que realmente contiene texto ASCII. Este enfoque es especialmente útil cuando los archivos llegan con extensiones incorrectas o poco fiables.
Tipos de archivos más comunes
El comando file es capaz de diferenciar entre distintos tipos de archivos de forma muy práctica. Puedes usarlo para textos, binarios y comprimidos.
Un ejemplo típico sería:
cd ~/project
echo "This is a text file" > text_file.txt
dd if=/dev/urandom of=binary_file.bin bs=1M count=1 > /dev/null 2>&1
gzip text_file.txt
file text_file.txt
file binary_file.bin
file text_file.txt.gz
La salida puede parecerse a esta:
text_file.txt: ASCII text
binary_file.bin: data
text_file.txt.gz: gzip compressed data, was "text_file.txt", last modified: Tue Apr 18 12:34:56 2023, max compression
Aquí file identifica correctamente el archivo de texto, el archivo binario y el archivo comprimido con gzip. En 2026 esta sigue siendo una forma rápida de inspección básica en la terminal.
Inspeccionar archivos comprimidos
Una función muy útil es la opción -z, que permite mirar dentro de archivos comprimidos. Esto ayuda a descubrir qué había originalmente dentro del archivo.
file -z text_file.txt.gz
La salida podría ser:
text_file.txt.gz: gzip compressed data, was "text_file.txt", last modified: Tue Apr 18 12:34:56 2023, max compression
Con -z, file no solo dice que el archivo está comprimido, sino que también informa del archivo original. Es una forma rápida de verificar contenido sin descomprimir manualmente.
¿Cómo trabajar con archivos comprimidos?
Además de identificar archivos, normalmente también querrás extraerlos. Para eso, Linux ofrece herramientas como tar, gzip, gunzip y unzip. Si tienes un archivo .tar.gz, puedes crearlo así:
cd ~/project
tar -czf archive.tar.gz text_file.txt binary_file.bin
Luego lo inspeccionas con:
file archive.tar.gz
Y la salida esperada sería algo como:
archive.tar.gz: gzip compressed data, last modified: Tue Apr 18 12:34:56 2023, max compression
Para extraer el contenido:
tar -xzf archive.tar.gz
ls -l
Después verás los archivos extraídos en el directorio:
total 2048
-rw-r--r-- 1 labex labex 20 Apr 18 12:34 binary_file.bin
-rw-r--r-- 1 labex labex 19 Apr 18 12:34 text_file.txt
Ese flujo sigue siendo uno de los más comunes para gestionar paquetes comprimidos en Linux.
¿Cómo descomprimir con gunzip?
Si trabajas con archivos .gz individuales, puedes usar gunzip para descomprimirlos. Por ejemplo:
gunzip text_file.txt.gz
file text_file.txt
La salida sería:
text_file.txt: ASCII text
Esto confirma que el archivo se ha descomprimido correctamente y vuelve a ser un archivo de texto normal.
Uso práctico en el día a día
El comando file es muy útil en situaciones reales como estas:
- Verificar si una descarga es realmente el tipo de archivo esperado.
- Confirmar si un archivo sospechoso es texto o binario.
- Inspeccionar documentos, scripts, ejecutables y archivos comprimidos.
- Detectar archivos mal etiquetados por extensión.
- Revisar rápidamente contenido antes de procesarlo con otra herramienta.
En entornos de administración y soporte, su valor está en la rapidez. En lugar de abrir un archivo o intentar descomprimirlo a ciegas, puedes saber en segundos qué es realmente.
Buenas prácticas
Aunque file es muy fiable, conviene combinarlo con otras herramientas cuando el archivo es importante o parece dañado. Por ejemplo, puedes usarlo junto con ls, tar, head, hexdump o unzip para obtener una visión más completa.
También es buena práctica no confiar nunca solo en la extensión. En seguridad, automatización y análisis forense básico, file sigue siendo una primera línea de defensa muy valiosa.
Conclusión
El comando file en Linux permite identificar el tipo real de un archivo leyendo su contenido. Es útil para distinguir entre texto, binarios y archivos comprimidos, y sigue siendo una herramienta imprescindible en 2026.
Sus opciones más prácticas incluyen:
file nombre_archivopara detectar el tipo generalfile -z archivo.gzpara inspeccionar archivos comprimidostar -xzf archivo.tar.gzpara extraer archivos comprimidosgunzip archivo.gzpara descomprimir ficheros gzip individuales
