accueil > Gestion des fichiers et répertoires > file

file: Guide d'identification du type de fichier

Détermine le type de fichier et les informations MIME en examinant le contenu réel du fichier plutôt que son extension. Utilise la base de données libmagic.

Aperçu

La commande file détermine le type d'un fichier en analysant son contenu plutôt que de se fier à son extension. Elle reconnaît divers formats tels que texte/binaire, formats exécutables (ELF), fichiers compressés, images/audio, et peut également afficher le type MIME et l'encodage.

Caractéristiques principales

  • Détermine le type de fichier en fonction de son contenu réel, indépendamment de l'extension.
  • Peut afficher le type MIME et l'encodage des caractères.
  • Possibilité de déterminer la cible d'un lien symbolique ou le lien lui-même.
  • Tente d'examiner le contenu des fichiers compressés (-z).

Exemples de scénarios d'utilisation

Situations où la commande file est particulièrement utile.

  • Identification du format réel d'un fichier avec une extension incorrecte (ex: un PDF déguisé en .jpg).
  • Détermination du type de fichiers sans extension.
  • Branchement du traitement dans les scripts en fonction du type de fichier.
  • Détermination du type MIME des fichiers téléchargés dans les services web/réseau.
  • Détermination du type du lien symbolique lui-même ou de sa cible.
  • Analyse du contenu interne des fichiers compressés.
  • Identification du format des fichiers exécutables pour l'analyse de sécurité et la forensique.

Options principales

Options fréquemment utilisées, regroupées par situation.

1) Comportement de base & contrôle de la sortie

2) Spécification de l'entrée/cible

3) Base de données magique/Exclusions/Débogage

4) Aide/Version

Commande générée :

Essayez de combiner les commandes.

Description:

`file` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Exemples des modèles d'utilisation fréquents.

Identification de base

file /bin/ls

Affiche le type de fichier au format de base

Sortie brève sans nom de fichier

file -b /bin/ls

Sortie simple facile à traiter dans les scripts

Type MIME/Encodage

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

Utile pour l'identification des types dans les services web/pipelines

Vérifier l'intérieur des archives compressées

file -z backup.tar.gz

Estime le contenu réel d'un fichier compressé

Lien symbolique lui-même vs Cible

file -h symlink && file -L symlink

Examine le lien lui-même (-h) ou suit la cible pour l'examiner (-L)

Vérification en masse des types MIME avec find

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

Transfère en toute sécurité les listes de fichiers en utilisant des séparateurs NUL

Emplacement de la base de données magique

Le chemin peut varier selon le système et la distribution.

🪄 DB magique compilée par défaut

/usr/share/file/magic.mgc

Emplacement par défaut pour la plupart des distributions

📁 Répertoire des sources magiques

/usr/share/file/magic/

Règles source avant compilation (originales, pas .mgc)

Codes de sortie

Référez-vous à cela lors de la gestion des branches dans les scripts.

Code Signification
0 Succès: identification réussie (ou tâche demandée réussie)
1 Problème général: fichier inexistant/inaccessible/identification échouée, etc.
2 Erreur d'utilisation ou erreur système

Installation

La plupart des systèmes l'ont préinstallé, sinon installez-le comme suit.

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

Astuces & Précautions

  • L'utilisation explicite de `--mime-type` et `--mime-encoding` permet d'éviter les différences de comportement de `-i/--mime` selon la distribution/version.
  • Gestion des liens symboliques: utilisez `-h` pour voir le lien lui-même, et `-L` pour vérifier le fichier cible.
  • Pour le traitement en masse, l'utilisation du modèle `find -print0 | xargs -0` est sûre même avec des noms de fichiers contenant des espaces/nouvelles lignes.
  • Selon le format de compression, `-z` peut ne pas toujours vérifier l'intérieur. Décompressez d'abord si nécessaire pour vérifier.

commandes associées

Des commandes fonctionnellement similaires ou souvent utilisées ensemble.


Commandes de la même catégorie