Tutorial de comandos de file de Linux para principiantes (5 ejemplos)

Mientras trabajas en la línea de comandos de Linux, puede haber ocasiones en las que te encuentres con un archivo que sea un archivo comprimido (por ejemplo, un archivo .zip), pero su extensión (o la falta de ella) sugiera lo contrario. En ocasiones como ésta, el comando file resulta útil, ya que te permite determinar el tipo de archivo real.

En este tutorial, trataremos los conceptos básicos del comando file utilizando algunos ejemplos fáciles de entender. Pero antes de eso, vale la pena mencionar que todos los ejemplos mencionados aquí se han probado en una máquina Ubuntu 22.04 LTS.

Comando file de Linux

Como ya se ha mencionado al principio, el comando archivo en Linux te permite ver el tipo de archivo con el que estás tratando. A continuación se muestra su sintaxis:

file [OPTIONS] file1 file2 ....

Y así es como lo explica la página man de la herramienta:

     file tests each argument in an attempt to classify it.  There are three
     sets of tests, performed in this order: filesystem tests, magic tests,
     and language tests.  The first test that succeeds causes the file type to
     be printed.

The type printed will usually contain one of the words text (the file
contains only printing characters and a few common control characters and
is probably safe to read on an ASCII terminal), executable (the file con?
tains the result of compiling a program in a form understandable to some
UNIX kernel or another), or data meaning anything else (data is usually
“binary” or non-printable).  Exceptions are well-known file formats (core
files, tar archives) that are known to contain binary data.  When adding
local definitions to /etc/magic, make sure to preserve these keywords.
Users depend on knowing that all the readable files in a directory have
the word “text” printed.  Don’t do as Berkeley did and change “shell
commands text” to “shell script”.

A continuación encontrarás algunos ejemplos al estilo de las preguntas y respuestas que te darán una mejor idea de cómo funciona el comando archivo.

Q1. ¿Cómo se utiliza el comando file?

Sencillo, sólo tienes que ejecutar ‘archivo’ con un nombre de archivo como entrada. Por ejemplo:

file test

Como ‘prueba’ es un directorio de mi sistema, el comando archivo me dijo precisamente eso. Éste es el resultado:

test: directory

Q2. ¿Cómo comprobar varios archivos?

Esto también es bastante sencillo. Sólo tienes que pasar el nombre de los archivos como entrada, de forma similar a como hicimos en el ejemplo anterior.

Aquí tienes un ejemplo:

file test test.txt .local

Y aquí está la salida que produjo este comando:

test:     directory
test.txt: ASCII text
.local:   directory

Q3. ¿Cómo hacer que file muestre sólo el tipo en la salida?

Como puedes ver en la salida del comando archivo hasta ahora, la salida contiene dos cosas: el nombre del archivo y su tipo. Sin embargo, si quieres, puedes hacer que file sólo produzca el tipo en la salida. Esto puede hacerse utilizando la opción de línea de comandos -b.

Por ejemplo, el siguiente comando

file -b test

produjo la siguiente salida en mi sistema:

directory

Q4. ¿Cómo ver el tipo MIME de los archivos?

Para ver el tipo MIME de un archivo, utiliza la opción de línea de comandos -i. Aquí tienes un ejemplo:

Q5. ¿Cómo cambiar el separador en la salida?

Como ya hemos comentado, en el modo por defecto, el comando archivo produce en la salida un nombre de archivo seguido de su tipo. Ambos datos están separados por dos puntos (:). Sin embargo, si lo deseas, puedes cambiar este separador utilizando la opción de línea de comandos -F.

Por ejemplo

file -F " +" test

produce la siguiente salida:

test + directory

Conclusión

Para concluir, file es una herramienta importante que debes tener en tu gatito. Aquí sólo hemos arañado la superficie, ya que la herramienta ofrece muchas más funciones en cuanto a opciones de la línea de comandos. Una vez que hayas terminado con todo lo que hemos tratado aquí, puedes dirigirte a la página man del comando file para saber más sobre él.

También te podría gustar...