Menu Fermer

Utiliser la commande file sur Linux avec des exemples

La commande File sur Linux vous permet d’obtenir des informations sur le type de fichier.
C’est une commande utile lorsque l’on tombe sur un fichier inconnu ou que l’on a des doutes quant au type de fichier.

Dans ce tutoriel, je vous montre comment utiliser la commande file sur Linux avec des exemples.

Utiliser la commande file sur Linux avec des exemples

La syntaxe de la commande Linux

La commande file est utilisée pour déterminer le type de fichier. Cette commande teste chaque argument pour tenter de le classer.

Il y a trois ensembles de tests possibles :

  • Test de système de fichiers : ce test est basé sur le résultat qui revient à partir d’un appel système STAT. Le programme vérifie que si le fichier est vide, ou s’il s’agit d’une sorte de fichier spécial. Ce test entraîne l’impression du type de fichier
  • Test magique : ces tests sont utilisés pour vérifier les fichiers avec des données dans des formats fixes particuliers
  • Test de langue : ce test recherche des chaînes particulières qui peuvent apparaître n’importe où dans les premiers blocs d’un fichier
file [option] NomFichier

Comment utiliser la commande file Linux avec des exemples

Utilisation basique

Voici un exemple d’utilisation basique où on cherche à obtenir le type de fichier de demo.php :

file demo.php
demo.php: PHP script, ASCII text
Comment utiliser la commande file sur Linux avec des exemples

Supprimer le nom de fichier de la sortie

Vous pouvez utiliser l’option -b et la sortie affichera uniquement le type de fichier en omettant le nom de fichier. Cela pourrait être utile dans les scripts.

file -b NomFichier
file -b demo.php
C++ source, ASCII text
Comment utiliser la commande file sur Linux avec des exemples

Obtenir le type MIME du fichier

Vous pouvez également afficher le type MIME du fichier grâce à l’option -i.

file -i filename

Voici un exemple de la commande sur un fichier vidéo, avec et sans l’information de type mime :

file ~/Téléchargements/Desinstaller-mise-jour-Windows-10.mp4 
/home/mak/Téléchargements/Desinstaller-mise-jour-Windows-10.mp4: ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]
Comment utiliser la commande file Linux avec des exemples

Vous pouvez combiner les options -b et -i.

Obtenir les informations de type de fichier d’un fichier dans un fichier d’archive

Si vous gzip un répertoire et que vous avez maintenant un fichier compressé. Vous pouvez examiner le contenu non compressé pour décider du type de fichier avec l’option -z.

file -z fichier_compresse

Voici un exemple avec et sans l’option -z:

file demo.php.gz 
demo.php.gz: gzip compressed data, was "demo.php", last modified: Fri Jul  1 08:23:21 2022, from Unix, original size modulo 2^32 39
file -z demo.php.gz 
demo.php.gz: PHP script, ASCII text (gzip compressed data, was "demo.php", last modified: Fri Jul  1 08:23:21 2022, from Unix)
Comment utiliser la commande file Linux avec des exemples

Utiliser la commande de fichier avec plusieurs fichiers

La commande de fichier peut être exécutée sur plusieurs fichiers simultanément.

file fichier1 fichier2 fichier3

Voici un exemple pour vous afin que vous puissiez le voir en action :

file demo.html demo.php.gz demo.php.gz 
demo.html:   ASCII text
demo.php.gz: gzip compressed data, was "demo.php", last modified: Fri Jul  1 08:23:21 2022, from Unix, original size modulo 2^32 39
demo.php.gz: gzip compressed data, was "demo.php", last modified: Fri Jul  1 08:23:21 2022, from Unix, original size modulo 2^32 39
Comment utiliser la commande file Linux avec des exemples

Utiliser la commande de fichier avec regex

Si vous souhaitez utiliser la commande de fichier sur plusieurs fichiers, vous n’avez pas toujours à fournir tous les noms de fichiers. Vous pouvez utiliser Regex à la place.

C’est vraiment à la hauteur de vos besoins et de votre imagination comment vous pouvez l’utiliser. Je vais quand même montrer quelques exemples.

Si vous souhaitez afficher le type de fichier de tous les fichiers du répertoire actuel, utilisez simplement ceci :

file *

Si vous souhaitez afficher le type de fichier de tous les fichiers avec une certaine extension, vous pouvez également le faire :

file *.txt

Les possibilités sont infinies. Vous voulez afficher le type de fichiers de fichiers avec le nom commençant par ‘a’? :

file [a]*

Vérifier le système de fichiers d’un disque

Moins courant, la commande file vous permet d’obtenir des informations sur un périphérique dont un périphérique de stockage :

sudo file -sL /peripherique

Par exemple pour afficher le système de fichiers pour chaque partition du disque /dev/sda :

sudo file -sL /dev/sda*
/dev/sda:  DOS/MBR boot sector
/dev/sda1: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", sectors/cluster 8, Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 2048, sectors 1048576 (volumes > 32 MB), FAT (32 bit), sectors/FAT 1024, reserved 0x1, serial number 0xb670203, unlabeled
/dev/sda2: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", sectors/cluster 8, Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 1050624, sectors 1050624 (volumes > 32 MB), FAT (32 bit), sectors/FAT 1024, reserved 0x1, serial number 0x11ec726c, unlabeled
/dev/sda3: DOS/MBR boot sector; partition 1 : ID=0x83, start-CHS (0x3ff,254,2), end-CHS (0x3ff,254,2), startsector 2, 39837696 sectors, extended partition table (last)
/dev/sda5: Linux rev 1.0 ext4 filesystem data, UUID=b88f1d53-f302-49bf-ab18-230575ef56ba (needs journal recovery) (extents) (64bit) (large files) (huge files)
Comment utiliser la commande file Linux avec des exemples