El comando file en Linux: guía completa

Inicio / Linux / El comando file en Linux: guía completa

El comando file en Linux es una herramienta poderosa y versátil utilizada para determinar el tipo de un archivo. Al contrario de lo que podría parecer, file no se basa únicamente en la extensión del archivo, sino que analiza el contenido del mismo para identificar su tipo. En este post, exploraremos cómo funciona este comando, sus opciones más útiles y ejemplos prácticos de su uso.

¿Qué hace el comando file?

El comando file examina el contenido de los archivos y devuelve una descripción de su tipo. Esta descripción puede indicar si el archivo es de texto, binario, una imagen, un ejecutable, entre otros. Para obtener esta información, file utiliza tres métodos principales:

  1. Pruebas de tipo de sistema de archivos: Verifica el tipo de sistema de archivos donde se encuentra el archivo.
  2. Pruebas de magia: Analiza las “firmas” dentro del contenido del archivo.
  3. Pruebas de idioma: Inspecciona si el archivo contiene texto y, en caso afirmativo, intenta identificar el lenguaje.

Sintaxis básica

La sintaxis básica del comando file es muy simple:

file [opciones] archivo

Donde “archivo” es el nombre del archivo que se desea analizar. A continuación, veremos algunas de las opciones más comunes y útiles.

Opciones útiles del comando file

Este comando incluye varias opciones que permiten personalizar su comportamiento. Algunas de las más útiles son:

-b, –brief: Muestra solo el tipo de archivo, sin el nombre del archivo.

file -b nombre_del_archivo

-i, –mime: Muestra el tipo MIME del archivo, útil para identificar el tipo de contenido de manera más específica.

file -i nombre_del_archivo

-f nombre_de_archivo, –files-from nombre_de_archivo: Lee una lista de archivos desde un archivo especificado.

file -f lista_de_archivos.txt

-z, –uncompress: Examina el contenido de archivos comprimidos.

file -z archivo_comprimido.gz

Ejemplos prácticos

Vamos a ver algunos ejemplos prácticos:

Identificar el tipo de un archivo de texto

Supongamos que tenemos un directorio con un archivo de texto, si ejecutamos el comando file sobre este archivo, obtendremos el siguiente resultado:

sintaxis básica de el comando file

Como podemos ver, en este ejemplo ejecutamos primero el comando ls para listar los archivos en el directorio; posteriormente, el comando file nos devuelve el nombre del archivo seguido de su tipo, en este caso ASCII text.

Obtener el tipo MIME de un archivo de imagen

Dentro de Linux no es obligatorio especificar una extensión para cada archivo, las “extensiones” que vemos en algunos nombres, el sistema operativo los considera como parte del mismo. Veamos un ejemplo práctico, supongamos que tenemos una imagen png en un directorio, pero no podemos identificar su tipo porque no hay extensión.

la opción mime de el comando file en linux

En este ejemplo identificamos el archivo image, por su nombre podemos suponer que es una imagen, pero en Linux no podemos estar seguros a simple vista. El comando file entra en juego, lo ejecutamos sobre el archivo con la opción -i o –mime y nos muestra que es una imagen png (image/png). En la última línea ejecutamos el comando combinando la opción mime y la opción brief, para mostrar solo el tipo sin el nombre.

Leyendo archivo desde una lista

Siguiendo con el ejemplo anterior, agregaremos un archivo de texto con una lista de los archivos ya existentes (text-file e image, uno en cada línea) y ejecutaremos file para leer estos dos archivos a la vez.

la opción files-from de el comando file

Como podemos ver ahora tenemos tres archivos, file-list contiene una lista con los otros dos. Si ejecutamos el comando file con la opción –files-from y esta lista como parámetro, nos muestra los nombres y tipos de los archivos en la lista. Incluso en la última línea combinamos dos opciones más.

Analizando archivos comprimidos

Agreguemos ahora un archivo zip al directorio. Usaremos la opción –uncompress para obtener información sobre su tipo. Es pertinente aclarar que esta opción no descomprime el archivo, solo nos devuelve información acerca de su contenido.

la opción uncompress de el comando file

Conclusión

El comando file en Linux es una herramienta esencial para cualquier administrador de sistemas o desarrollador. Su capacidad para analizar y describir el contenido de los archivos, más allá de las extensiones, lo hace extremadamente útil en una amplia variedad de situaciones. Para más detalles sobre este comando, puedes consultar la página del manual.

Esperamos que esta guía te haya sido de ayuda y que ahora tengas una mejor comprensión de cómo usar el comando file en tus tareas diarias con Linux. Aprende también acerca de el comando cd en linux.