Mientras trabaja en la línea de comandos de Linux, puede haber ocasiones en las que encuentre un archivo que es un archivo (por ejemplo, un archivo .zip), pero su extensión (o la falta de ella) sugeriría lo contrario. Es en momentos como estos, el archivo El comando resulta útil ya que le permite determinar el tipo de archivo real.
En este tutorial, discutiremos los conceptos básicos del archivo comando usando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos mencionados aquí han sido probados en una máquina con Ubuntu 18.04 LTS.
Comando de archivo de Linux
Como ya se mencionó al principio, el comando de archivo en Linux le permite ver el tipo de archivo con el que está tratando. La siguiente es su sintaxis:
file [OPTIONS] file1 file2 ....
Y así es como lo explica la página de manual de la herramienta:
El archivofile 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”.
Los siguientes son algunos ejemplos de preguntas y respuestas que le darán una mejor idea de cómo funciona el comando de archivo.
P1. ¿Cómo usar el comando de archivo?
Simple, simplemente ejecute 'archivo' con un nombre de archivo como entrada. Por ejemplo:
file test
Dado que 'prueba' es un directorio en mi sistema, el comando de archivo me dijo exactamente eso. Aquí está la salida que produjo:
test: directory
Q2. ¿Cómo probar varios archivos?
Esto también es bastante sencillo. Simplemente pase el nombre de los archivos como entrada, de forma similar a como lo hicimos en el ejemplo anterior.
He aquí un ejemplo:
file test test.txt .local
Y aquí está el resultado que produjo este comando:
test: directory
test.txt: ASCII text
.local: directory
P3. ¿Cómo hacer que el archivo muestre solo el tipo en la salida?
Como puede ver en la salida del comando de archivo hasta el momento, la salida contiene dos cosas:el nombre del archivo y su tipo. Sin embargo, si lo desea, puede crear un archivo para producir solo tipo en la salida. Esto se puede hacer usando la opción de línea de comando -b.
Por ejemplo, el siguiente comando:
file -b test
produjo el siguiente resultado en mi sistema:
directory
P4. ¿Cómo ver el tipo de archivos MIME?
Para ver el tipo MIME de un archivo, use la opción de línea de comando -i. He aquí un ejemplo:
P5. ¿Cómo cambiar el separador en la salida?
Como discutimos anteriormente, en el modo predeterminado, el comando de archivo produce en la salida un nombre de archivo seguido de su tipo. Ambos detalles están separados por dos puntos (:). Sin embargo, si lo desea, puede cambiar este separador mediante la opción de línea de comando -F.
Por ejemplo:
file -F " +" test
produjo el siguiente resultado:
test + directory
Conclusión
Para concluir, el archivo es una herramienta importante para tener en tu gatito. Acabamos de arañar la superficie aquí, ya que la herramienta ofrece muchas más funciones en términos de opciones de línea de comandos. Una vez que haya terminado con lo que hemos discutido aquí, puede dirigirse a la página del manual de comando de archivo para obtener más información al respecto.