file con Bash

Comando file para Linux

Con el comando file de Linux podemos examinar el contenido de un archivo para determinar de qué tipo es. El comando file inspecciona los primeros bytes del archivo en busca de patrones específicos que identifiquen de qué tipo de archivo se trata.

Trabajar con el comando de Linux file es indispensable si queremos asegurarnos que el tipo real de archivo es el que nos indica su extensión. Aunque este comando puede no ser fiable al 100% cuando se trabaja con archivos de formato inusual, lo más normal es que proporcione información muy precisa.

file [opciones] un_archivo otro_archivo

Vamos a ver antes de nada qué información nos muestra si hacemos uso del comando file con una imagen.

file una_foto.png
una_foto.png: PNG image data, 2000 x 1500, 8-bit/color RGB, non-interlaced
Consulta de tipo de archivo con el comando file de Linux

Ahora vamos a ver un ejemplo en el que consultaremos el tipo de un archivo que previamente cambiaremos de extensión por otra que no le corresponda.

mv lorem.txt lorem.png
file lorem.png

Aunque la nueva extensión del archivo lorem sea .png, el tipo de archivo sigue siendo de texto. El comando file de Linux nos lo muestra por consola.

lorem.png: Unicode text, UTF-8 text
Consulta de tipo de archivo con el comando file de Linux después de haber cambiado la extensión

Los tipos de archivos que detecta el comando file son muchísimos, vamos a ver unos cuantos en esta lista. Para ver todos podemos echar un vistazo desde terminal al comando man file.

Tipos de archivos que detecta el comando file en Linux

  • Documentos de texto en formatos ASCII, UTF-8, ISO-8859, etc.
  • Archivos binarios ejecutables.
  • Archivos comprimidos ZIP, GZIP, TAR, etc.
  • Archivos de imágenes JPEG, BMP, GIF, PNG, etc.
  • Audio y vídeo MP3, WAV, AVI, MP4, etc
  • Más formatos como PDF, archivos de Word, Excel, SQLite, MySQL, C, C++, Python, Javascript, TTF, OTF, archivos de configuración de sistema…
  • En definitiva muchas extensiones 🙂

Opciones con file

De la misma forma que podemos verificar las extensiones detectadas por el comando file de Linux, podemos echar un vistazo para ver todas las opciones disponibles que darán más potencia al uso de file. Puedes verlas todas ejecutando en la terminal man file.

  • -b: muestra solo el nombre del archivo, no agrega la descripción.
  • -i: muestra el tipo de archivo en formato MIME.
  • -z: si el archivo está comprimido lo intenta descomprimir antes de analizarlo.
  • *: muestra el tipo de todos los ficheros del directorio que le indiquemos o en el que estemos situados.

Vamos a ver un ejemplo utilizando algunas opciones con el comando file. Mostraremos el tipo de todos los archivos (formato MIME) que se encuentren en el directorio diccionario, incluyendo el que está comprimido con gzip.

file -i -z diccionario/*
Consultando el tipo de todos los archivos de un directorio con *

Si estuviésemos dentro del directorio únicamente tendríamos que indicar todos con el asterisco *, también podríamos unir las dos opciones -i -z para que fuesen juntas.

file -iz *

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *