Présentation
Le file
Linux La commande aide à déterminer le type d'un fichier et ses données. La commande ne tient pas compte de l'extension du fichier et exécute à la place une série de tests pour découvrir le type de données du fichier.
Dans ce didacticiel, nous allons vous montrer comment le file
commande fonctionne et comment l'utiliser.
Prérequis
- Un système exécutant Linux.
- Accès à la fenêtre du terminal.
Syntaxe de commande de fichier
Le file
La commande utilise la syntaxe de base suivante :
file [option] [file name]
Dans la syntaxe ci-dessus, file name
représente le nom du fichier que vous souhaitez tester. Le file
La commande effectue trois séries de tests en essayant de déterminer le type de fichier, dans cet ordre :
- Tests du système de fichiers effectuez un appel système stat(2) et vérifiez le résultat par rapport au fichier d'en-tête système. De cette façon, le
file
La commande détermine si le fichier est d'un type courant pour votre système (tel qu'un fichier texte, une image, un répertoire, etc.). - Épreuves magiques utilisez une courte chaîne de nombres stockée près du début du fichier (« nombre magique ») pour tester si le fichier est un exécutable binaire et, si c'est le cas, déterminer son type. Les informations nécessaires pour effectuer ces tests sont stockées dans /etc/magic ou /usr/share/misc/magic à partir d'un fichier magique compilé.
- Tests de langue utilisez une balise spéciale pour déterminer dans quel langage de programmation un fichier exécutable binaire est écrit.
La sortie de la commande fournit une brève description du fichier et du type de données. Par exemple, en utilisant le file
commande pour tester un fichier texte :
file example.txt
Options de commande de fichier
Le file
commande utilise les options suivantes :
Option | Description |
---|---|
--apple | Change la sortie de la commande en celle utilisée par les anciennes versions de MacOS. |
-b, --brief | Passe la sortie de la commande en mode bref. |
-C, --compile | Crée un fichier de sortie contenant une version pré-parsée du fichier ou du répertoire magique. |
-c, --checking-printout | Vérifie l'impression pour la version analysée du fichier magique. |
-d | Imprime les informations de débogage interne dans le format d'erreur standard. |
-E | En cas d'erreur du système de fichiers, émet un message d'erreur et quitte. |
-e, --exclude | Exclut un test de la liste des tests effectués sur un fichier. |
--exclude-quiet | Exclut les tests que le file la commande n'en sait rien. |
--extension | Imprime une liste des extensions valides pour le type de fichier. |
-F, --separator | Utilise la chaîne fournie comme séparateur entre le nom de fichier et le type de fichier. |
-f, --files-from | Utilise un fichier texte fourni comme liste de fichiers à tester. La liste ne doit contenir qu'un seul nom de fichier par ligne. |
-h, --no-deference | Désactive les liens symboliques suivants. |
-i, --mime | Change la sortie de la commande en une chaîne de type MIME. |
--mime-type, --mime-encoding | Change la sortie de la commande en une chaîne de type MIME et n'affiche que l'élément spécifié (type ou encodage). |
-k, --keep-going | Maintient le test après la première correspondance des résultats. |
-l, --list | Affiche une liste des modèles correspondants par ordre décroissant de force. |
-L, --deference | Active les liens symboliques suivants. |
-m, --magic-file | Utilise un fichier magique alternatif fourni par l'utilisateur. |
-N, --no-pad | Ne remplit pas les noms de fichiers pour les aligner sur la sortie. |
-n, --no-buffer | Vide la sortie après avoir vérifié chaque fichier. |
-p, --preserve-date | Tente de conserver la dernière fois que le fichier a été accédé pour le faire ressembler au file la commande ne l'a pas testé. |
-P, --parameter | Définit divers paramètres, tels que le nombre maximal d'octets ou la récursivité, le nombre et la limite de longueur. |
-r, --raw | Désactive la traduction des caractères non imprimables. |
-s, --special-files | Permet de lire des fichiers spéciaux. |
-S, --no-sandbox | Désactive le sandboxing sur les systèmes qui le prennent en charge. |
-v, --version | Affiche la version du file commande. |
-z, --uncompress | Vérifie les fichiers compressés. |
-Z, --uncompress-noreport | Vérifie les fichiers compressés et affiche uniquement le type de fichier sans la compression. |
-0, --print0 | Affiche un caractère nul après la fin du nom de fichier. |
--help | Affiche le message d'aide. |
Exemples de commandes de fichiers
Vous trouverez ci-dessous des exemples de cas d'utilisation courants pour le file
commande.
Tester plusieurs fichiers
Pour tester plusieurs fichiers simultanément, ajoutez les noms de fichiers à la fin du file
commande :
file [file name 1] [file name 2] … [file name n]
Par exemple, tester un répertoire, un fichier texte, une image et une page Web :
file Example example.txt sample.png index.html
Tester tous les fichiers d'un répertoire
Ajoutez un caractère générique (*
) au file
commande pour tester tous les fichiers et répertoires du répertoire de travail courant :
file *
Ajoutez le chemin d'accès à un répertoire au caractère générique pour tester le contenu de ce répertoire :
file [path to directory]/*
Par exemple, pour tester le contenu de l'exemple répertoire, utilisez :
file Example/*
Tester les fichiers dans une plage
Le file
La commande vous permet de tester un sous-ensemble de fichiers dans un répertoire à l'aide de plages de style Regex. Sélectionnez une plage en plaçant les valeurs entre parenthèses. Par exemple, tester des fichiers et des répertoires avec des noms dans la plage a-l :
file [a-l]*
Étant donné que les plages de style Regex sont sensibles à la casse, la sortie dans l'exemple ci-dessus affiche uniquement les types de fichiers pour les fichiers commençant par a-l minuscule. L'ajout d'une autre plage vous permet également d'inclure des caractères majuscules :
file [a-l]* [A-L]*
Tester les fichiers d'une liste
Le file
La commande vous permet d'utiliser un fichier texte comme liste de fichiers à tester. Le fichier texte ne doit contenir qu'un seul nom de fichier par ligne.
Utilisez le -f
option et ajoutez le chemin du fichier de liste à file
commande :
file -f list.txt
Tester les fichiers spéciaux
Le file
la commande n'est pas toujours capable de lire des fichiers spéciaux, tels que les fichiers système :
file /dev/sda5
Dans l'exemple ci-dessus, la sortie de la commande file montre que /dev/sda5 est un fichier spécial de bloc mais n'offre pas de détails supplémentaires. Utilisation du -s
L'option vous permet de tester entièrement les fichiers spéciaux :
sudo file -s /dev/sda5
Tester les fichiers compressés
Utilisez le -z
option pour tester entièrement les fichiers compressés, en essayant de détecter leur contenu :
file -z install.tar.gz
Tester la version analysée du fichier
Utilisation de -c
affiche l'impression de vérification pour la version analysée du fichier :
file -c example.txt
Cette option est généralement utilisée avec le -m
option pour déboguer et installer un nouveau fichier magique.
Afficher la brève sortie
Utilisation du -b
L'option affiche la version abrégée de la sortie. Cette version de la sortie affiche uniquement les types de fichiers et omet les noms de fichiers.
file -b Example example.txt sample.png index.html
Ajouter des séparateurs à la sortie
Utilisation du -F
L'option vous permet de définir un caractère qui agit comme un séparateur entre les sections de nom de fichier et de type de fichier de la sortie. Par exemple, ajoutez un signe plus (+
) comme séparateur avec :
file -F + Example example.txt sample.png index.html
Supprimer le rembourrage du nom de fichier de la sortie
Utilisez le -N
option pour supprimer le rembourrage entre les sections de nom de fichier et de type de fichier de la sortie :
file -N Example example.txt sample.png index.html
La sortie résultante n'est plus alignée verticalement :