file
Detecta qué tipo de archivo es por su contenido, no por su extensión.
Determina el tipo real de un archivo analizando sus bytes (magic numbers), no solo la extensión (.txt, .jpg). Lo usas cuando no sabes qué es un archivo descargado, cuando una extensión está equivocada o para ver si un archivo es ejecutable, texto, imagen, binario, etc.
file [opciones] ARCHIVO...Despiece
5 ejemplosDetectar el tipo de un archivo
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | file | Comando | El comando para detectar tipos de archivo. |
| 2 | script.sh | Argumento | El archivo a analizar. |
Muestra algo como 'script.sh: Bourne-Again shell script, ASCII text executable'.
Ver solo el tipo (sin nombre)
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | file | Comando | El comando para detectar tipos de archivo. |
| 2 | -b | Opción | Modo breve: solo muestra el tipo. |
| 3 | foto.jpg | Argumento | El archivo a analizar. |
Muestra solo 'JPEG image data, JFIF standard 1.01' sin el nombre del archivo.
Ver tipo MIME
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | file | Comando | El comando para detectar tipos de archivo. |
| 2 | -i | Opción | Muestra el tipo MIME. |
| 3 | documento.txt | Argumento | El archivo a analizar. |
Muestra 'documento.txt: text/plain; charset=us-ascii' o con el charset correspondiente.
Analizar archivo comprimido
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | file | Comando | El comando para detectar tipos de archivo. |
| 2 | -z | Opción | Descomprime temporalmente para ver el contenido interno. |
| 3 | datos.tar.gz | Argumento | Archivo comprimido a inspeccionar. |
Muestra que es gzip comprimido y también indica qué hay adentro (por ejemplo 'POSIX tar archive').
Analizar varios archivos
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | file | Comando | El comando para detectar tipos de archivo. |
| 2 | *.txt | Argumento | Todos los archivos .txt en la carpeta actual. |
| 3 | *.jpg | Argumento | Todos los archivos .jpg en la carpeta actual. |
Analiza cada archivo y muestra su tipo correspondiente, uno por línea.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -b--brief | No muestra el nombre del archivo, solo el tipo. Útil para scripts. |
| -z--uncompress | Prueba a descomprimir archivos comprimidos para ver qué hay adentro. |
| -i--mime | Muestra el tipo MIME (text/plain, image/png, etc.) en vez de la descripción en texto. |
| -L--dereference | Sigue enlaces simbólicos y analiza el archivo destino. |
| -k--keep-going | No se detiene al primer error; sigue analizando el resto. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Creer que la extensión define el tipo. | file analiza el contenido. Un archivo .txt puede ser un ejecutable renombrado; file lo detectará correctamente. |
| Archivo vacío. | Un archivo de 0 bytes suele aparecer como 'empty' (vacío). Eso es normal. |
| No tener permisos de lectura. | Si no puedes leer el archivo, file puede no analizarlo. Necesitarás permisos (o sudo solo si es estrictamente necesario). |
| Archivo binario muy grande. | file lee solo los primeros bytes para identificarlo, así que aunque el archivo sea gigante, es rápido y seguro. |
Preguntas frecuentes
- ¿Para qué sirve el comando file?
- Sirve para saber qué tipo de archivo es realmente, analizando su contenido, no su extensión.
- ¿Por qué usar file en lugar de ver la extensión?
- Porque la extensión puede estar cambiada. file detecta si es texto, binario, imagen, script, PDF, etc., con base en su contenido.
- ¿Qué muestra file -i?
- Muestra el tipo MIME del archivo, como text/plain, application/pdf o image/png. Es útil para web o scripts.
- ¿Qué hace file -z?
- Intenta descomprimir archivos comprimidos (.gz, .bz2) temporalmente para ver qué tipo de archivo contienen adentro.
- ¿Cómo veo solo el tipo sin el nombre del archivo?
- Con file -b archivo. Así solo obtienes la descripción del tipo, ideal para usar en scripts.