Inicio > Gestión de archivos y directorios > file

file: Guía para identificar tipos de archivos

Determina el tipo y la información MIME de un archivo examinando su contenido real en lugar de su extensión. Utiliza la base de datos libmagic.

Resumen

El comando `file` determina el tipo de un archivo analizando su contenido, sin depender de la extensión. Reconoce varios formatos como texto/binario, formatos de archivos ejecutables (ELF), archivos comprimidos, imágenes/audio, y puede también mostrar el tipo MIME y la codificación.

Características principales

  • Determina el tipo por el contenido real, independientemente de la extensión
  • Capaz de mostrar el tipo MIME y la codificación de caracteres
  • Puede optar por determinar el destino de un enlace simbólico o el enlace en sí
  • Intenta verificar el contenido dentro de archivos comprimidos (-z)

Ejemplos de escenarios de uso

Situaciones en las que el comando `file` es particularmente útil.

  • Identificación del formato real de un archivo con una extensión incorrecta (ej: un PDF disfrazado de .jpg)
  • Determinación del tipo de archivos sin extensión
  • Ramificación del procesamiento en scripts según el tipo de archivo
  • Determinación del tipo MIME de archivos subidos en servicios web/de red
  • Determinación del enlace simbólico en sí o de su destino
  • Análisis del contenido interno de archivos comprimidos
  • Identificación del formato de archivos ejecutables en análisis de seguridad y forenses

Opciones principales

Opciones de uso frecuente agrupadas por situación.

1) Comportamiento básico y control de salida

2) Especificación de entrada/destino

3) Base de datos mágica/Exclusión/Depuración

4) Ayuda/Versión

Comando generado:

Combina los comandos.

Descripción:

`file` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Patrones de uso frecuente organizados en ejemplos.

Determinación básica

file /bin/ls

Muestra el tipo de archivo en formato básico

Salida concisa sin nombre de archivo

file -b /bin/ls

Salida simple fácil de procesar en scripts

Tipo MIME/Codificación

file --mime-type index.html && file --mime-encoding README.md

Útil para la determinación de tipos en web/pipelines

Verificar dentro de archivos comprimidos

file -z backup.tar.gz

Estima el contenido real de un archivo comprimido

El enlace simbólico en sí vs. el destino

file -h symlink && file -L symlink

Examina el enlace en sí (-h) o sigue el destino para examinarlo (-L)

Verificación masiva de tipos MIME con find

find . -type f -print0 | xargs -0 file --mime-type

Transfiere listas de archivos de forma segura usando el delimitador NUL

Ubicación de la base de datos mágica

La ruta puede variar según el sistema y la distribución.

🪄 DB mágica compilada predeterminada

/usr/share/file/magic.mgc

Ubicación predeterminada en la mayoría de las distribuciones

📁 Directorio de origen mágico

/usr/share/file/magic/

Reglas de origen antes de la compilación (original, no .mgc)

Códigos de salida

Consulte para el manejo de ramificaciones en scripts.

Código Significado
0 Normal: Determinación exitosa (o tarea solicitada completada)
1 Problema general: Archivo no existente/inaccesible/fallo de determinación, etc.
2 Error de uso o error del sistema

Instalación

La mayoría viene preinstalado, pero si no, instálelo con lo siguiente.

Debian/Ubuntu

sudo apt update && sudo apt install -y file

RHEL/CentOS/Fedora

sudo dnf install -y file

Arch Linux

sudo pacman -S --needed file

openSUSE

sudo zypper install -y file

Consejos y precauciones

  • Usar explícitamente `--mime-type` y `--mime-encoding` puede evitar diferencias de comportamiento de `-i/--mime` según la distribución/versión.
  • Manejo de enlaces simbólicos: use `-h` para ver el enlace en sí, y `-L` para verificar el archivo de destino.
  • Al procesar grandes cantidades, usar el patrón `find -print0 | xargs -0` es seguro para nombres de archivo que contienen espacios/saltos de línea.
  • Según el formato de compresión, `-z` podría no siempre verificar el interior. Descomprima primero si es necesario.

comandos relacionados

Son comandos que son funcionalmente similares o que se usan juntos con frecuencia.


Comandos de la misma categoría