La commande File Linux : Comment l’utiliser pour déterminer le type de fichier

La commande File Linux : Comment l’utiliser pour déterminer le type de fichier

Dans les systèmes de type UNIX, les noms de fichiers peuvent être totalement différents de leurs types réels. Dans certains cas, ils n’ont même pas d’extension valide. Cela peut donc compliquer la gestion des données.

Pour organiser facilement les informations, Linux fournit un programme appelé commande file. Il est principalement utilisé pour déterminer le type de fichier : texte ASCII (American Standard Code for Information Interchange) ou format MIME (Multipurpose Internet Mail Extensions).

Dans ce tutoriel, vous apprendrez les bases de l’utilisation du programme et comment il peut renforcer vos compétences en matière de gestion de serveur et d’exploitation de Linux.

Comprendre la syntaxe de la commande File sous Linux

Pour utiliser la commande File de Linux sur un hébergement VPS, vous devrez le connecter avec un client SSH tel que PuTTY ou Terminal.

Avant d’entrer dans le vif du sujet, analysons la syntaxe de base de la commande file :

fichier [options] [nom du fichier]

  • file – demande à l’interpréteur de commandes d’exécuter la commande file.
  • [options] – modifie le fonctionnement de la commande.
  • [nom du fichier] – insère le nom du fichier à inspecter.

Lorsqu’elle est exécutée, la commande ne tient pas compte de l’extension du fichier. Au lieu de cela, elle effectue trois tests pour déterminer le type de fichier :

  • Test du système de fichiers – examine le retour de l’appel système stat. Le programme vérifie s’il s’agit d’un fichier vide ou d’un type de fichier spécial. Il recherche également les formats connus correspondant au système sur lequel vous travaillez, s’ils sont spécifiés dans le fichier d’en-tête du système.
  • Test magique – utilise des « nombres magiques », une courte chaîne de nombres au début d’un fichier, pour vérifier s’il s’agit de données binaires exécutables. Si c’est le cas, le programme détermine son type. Les informations nécessaires à l’exécution de ce test sont disponibles dans /etc/magic ou /usr/share/misc/magic à partir d’un fichier magic compilé.
  • Test de langue – examine les jeux de caractères dans lesquels le fichier est écrit, tels que le texte ASCII ou UTF-8. Il recherche également toute séquence spéciale apparaissant dans les premières lignes. Cependant, ce test est moins précis que les deux précédents, c’est pourquoi il est effectué en dernier.

La sortie de la commande affiche le type de fichier en utilisant le format standard. En fonction de l’option de la commande, elle peut fournir d’autres informations, telles que les données stockées dans les fichiers compressés, la taille ou la version.

L’option dans la syntaxe permet d’ajouter des variables à la commande File de Linux. Voici quelques-unes des plus courantes :

  • -b ou –brief – récupère une brève description du type de fichier.
  • file * – liste tous les types de fichiers dans le répertoire de travail actuel.
  • -i ou –mime – indique le type de fichier MIME.
  • -s ou –special-files – lit les fichiers spéciaux.
  • -z ou –uncompress – vérifie et affiche les informations contenues dans les fichiers compressés.
  • -c ou –checking-printout – vérifie la version analysée d’un fichier magique.
  • -m ou –magic-file – utilise un fichier magique alternatif fourni par l’utilisateur.
  • -d – affiche les informations de débogage interne en utilisant le format standard.
  • <regex range> – recherche les types de fichiers dans des plages spécifiques.
  • -0 ou –print0 – imprime un caractère nul à la fin du nom du fichier.
  • –help – affiche le message d’aide de la commande file. Il énumère également les options acceptables et leur utilisation.

Avant d’aborder chaque option séparément, utilisez l’éditeur nano pour créer un texte d’exemple nommé test.txt :

nano test.txt

Une fois que la ligne de commande ouvre un nouveau fichier, écrivez quelques lignes de texte et appuyez sur Ctrl + X et Y pour quitter et enregistrer les modifications.

Exemples de la commande File de Linux

Dans les sections suivantes, nous verrons comment utiliser chacune des options énumérées précédemment.

Utiliser File pour vérifier le type de fichier

Dans Linux, bien que les utilisateurs puissent renommer leurs fichiers, les informations mises à jour peuvent ne pas représenter les données réelles. Pour trouver le type correct d’un fichier, entrez :

file filename

Par exemple, vous renommez test.txt en text.zip. Pour afficher le type de fichier valide, entrez :

file text.zip

La sortie affichera le nom et son type réel, un fichier texte ASCII :

Pour visualiser le format en mode abrégé, utilisez l’option -b sur Terminal, suivie du nom du fichier. Par exemple, l’option -b du terminal est suivie du nom du fichier :

file -b text.zip

La sortie indiquera le type de fichier sans son nom :

Utiliser File pour lister le type de fichier de plusieurs fichiers

La commande file permet de répertorier chaque type de fichier dans le répertoire personnel. Pour ce faire, entrez file et ajoutez un caractère générique (*) :

file *

Le programme affiche tous les fichiers et répertoires :

En outre, la commande file permet d’afficher chaque type de fichier dans un répertoire spécifique. Voici la syntaxe générale :

file [path-to-directory]/*

Utiliser File pour trouver le type de fichier MIME

L’option -i permet d’afficher le type de fichier MIME. Il se compose de deux parties : un type et un sous-type. MIME utilise une barre oblique (/) pour les séparer, sans espace entre elles.

Voici la syntaxe générale :

file -i filename

Par exemple, pour afficher le type MIME du fichier test2.txt, entrez :

file -i test2.txt

Voici le résultat de la commande file ci-dessus :

Au lieu de déclarer le format de fichier comme étant du texte ASCII, le programme définit le fichier comme étant text/plain et charset=us-ascii.

Utiliser File pour lire le type de fichier spécial

La commande file vous permet de lire des fichiers spéciaux, tels que les informations système, en ajoutant l’option -s.

Important ! N’oubliez pas que seul un utilisateur root peut exécuter la commande file avec l’option -s. Dans le cas contraire, vous recevrez un message d’erreur concernant l’absence de permission de lecture.

Cette option permet uniquement de classer un fichier en tant que fichier spécial de bloc, lien symbolique, répertoire ou inexistant.

En voici le format général :

sudo file -s filename

Par exemple, pour lire le fichier ploop19269, entrez :

sudo file -s /dev/ploop19269

La sortie indique que ploop19269 est un secteur de démarrage DOS/MBR.

Utiliser File pour lire un fichier compressé

Il existe deux façons de vérifier les fichiers compressés tels que les archives ZIP ou gzip : les options -z et -Z. La première affiche des informations détaillées et son contenu, tandis que la seconde ne montre que les types de fichiers.

Voici la syntaxe générale de l’option -z :

file -z filename

Par exemple, pour lire les données complètes du fichier test2.txt.gz, entrez :

file -z test2.txt.gz

La sortie indique que test2.txt.gz est un fichier compressé par gzip qui contient test2.txt :

Voici le format général de l’option -Z :

file -Z filename

Par exemple, pour afficher le type de fichier de test.gz uniquement, entrez :

file -Z test.gz

Cette commande n’affichera que le type de fichier contenu dans test.gz – un texte ASCII.

Utiliser File pour tester la version analysée d’un fichier

L’ajout de l’option -c vous permet de visualiser la version analysée de n’importe quel fichier. Elle affiche des informations telles que le type, l’opcode et la valeur. Elle est généralement utilisée en conjonction avec l’option -m pour déboguer un nouveau fichier magique avant de l’installer.

Voici sa syntaxe générale :

file -c filename

Par exemple, pour imprimer la forme analysée du fichier test.txt, entrez :

file -c test.txt

Le résultat devrait ressembler à ceci :

Utiliser File pour lister les types de fichiers 

La commande file dresse la liste de tous les types de fichiers d’un répertoire à l’aide d’intervalles de type Regex. Tapez file et placez les valeurs entre parenthèses, suivies de *.

Sa syntaxe générale est la suivante :

file [range1-range2]*

Par exemple, pour examiner les fichiers commençant dans l’intervalle a à z, entrez :

file [a-z]*

Le résultat devrait ressembler à ceci :

Comme ce programme est sensible à la casse, il n’affichera que les fichiers commençant par les lettres minuscules a à z. Pour inclure les caractères majuscules, ajoutez une autre plage. Par exemple :

file [a-z]* [A-Z]*

Voici à quoi ressemble le résultat :

Conclusion

Dans les systèmes UNIX, les noms et les extensions de fichiers peuvent différer de leur type réel. C’est pourquoi Linux fournit la commande file pour aider les utilisateurs à déterminer le type d’un fichier. 

Lorsque vous l’exécutez, utilisez les options appropriées et spécifiez le nom du fichier. Il existe de nombreuses variables acceptables à utiliser avec la commande file, telles que :

  •  -c – teste la forme analysée d’un fichier.
  • -i – recherche le type de mime.
  • * – liste de plusieurs fichiers.
  • -z – lit le contenu compressé. 

Nous espérons que cet article vous a aidé à apprendre à gérer des données à l’aide de la commande file de Linux. Si vous avez des questions ou des suggestions, n’hésitez pas à les laisser dans la section des commentaires ci-dessous.

Commande File Linux – FAQ

Dans cette section, nous répondrons aux questions les plus courantes concernant la commande File de Linux.

Que fait exactement la commande File de Linux ?

Les noms de fichiers sous UNIX peuvent être totalement indépendants des types de fichiers. Il est donc difficile de déterminer l’information réelle. 
L’exécution de la commande file permet de connaître le format d’un fichier et d’examiner chaque argument en effectuant trois tests : le test du système de fichiers, le magic test et le test de langue. Le premier qui réussit donne le type de fichier.

Quelle commande Linux crée un fichier vierge dans le répertoire courant ?

Pour créer un ou plusieurs fichiers vides, utilisez la commande touch. Elle est fournie avec le système Linux et est particulièrement utile lorsque vous n’avez pas de données à stocker à ce moment-là.
Sa syntaxe générale est la suivante : touch nomfichier. Pour créer plusieurs fichiers, entrez : touch nomfichier1 nomfichier2.

Author
L'auteur

Chaimaa Chakir

Chaimaa est une spécialiste du référencement et du marketing de contenu chez Hostinger. Elle est passionnée par le marketing digital et la technologie. Elle espère aider les gens à résoudre leurs problèmes et à réussir en ligne. Chaimaa est une cinéphile qui adore les chats et l'analyse des films.