![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
La commande File sur Linux vous permet d‘obtenir des informations sur le type de fichier.
C‘est une commande utile pour déterminer le type d'un fichier, surtout si on ne sait pas à quoi il correspond.
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 :
L'utilisation de file est de ce type : file [option] Nfm_fichier
Voici un exemple d‘utilisation basique où on cherche à obtenir le type de fichier:
$ file index.php index.php: PHP script, Non-ISO extended-ASCII text, with very long lines (302)
Par défaut, le nom du fichier apparait. Vous pouvez utiliser l‘option -b et seul le type de fichier sera affiché
C'est utile dans les scripts. Cela évite de taper des commandes du genre file fichier | awk '{ print $2,$3 }'.
--screen $ file -b index.php PHP script, Non-ISO extended-ASCII text, with very long lines (302)
file -b info.txt ASCII text
Vous pouvez également afficher le type MIME du fichier grâce à l‘option -i.
file -i filename file -i md5 md5: text/x-perl; charset=us-ascii
Voici un exemple de la commande sur un fichier audio, avec et sans l‘information de type mime :
$ file '5 - Le high tech.mp3' 5 - Le high tech.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo$ file -i '5 - Le high tech.mp3' 5 - Le high tech.mp3: audio/mpeg; charset=binary
La chanson hight tech du groupe keppeldor est un fichier binaire mpeg à 128 kbps, 44.1 kHz.
Vous pouvez bien sur combiner les options -b et -i.
$ file -ib md5 text/x-perl; charset=us-ascii
La commande de fichier peut être exécutée sur plusieurs fichiers simultanément.
$ file 2html/bin/csv2html 2html/bin/ex2html 2html/bin/sh-csv2html 2html/bin/csv2html: Perl script text executable 2html/bin/ex2html: Perl script text executable 2html/bin/sh-csv2html: Bourne-Again shell script, ASCII text executable
Si vous souhaitez afficher le type de fichier de tous les fichiers du répertoire actuel, utilisez simplement ceci :
$ file * dir-diff: Bourne-Again shell script, Unicode text, UTF-8 text executable dirlist: Python script, ISO-8859 text executable dirsize: Bourne-Again shell script, Unicode text, UTF-8 text executable snapper: Python script, ASCII text executable stripscripts: Python script, ASCII text executable tree: POSIX shell script, Unicode text, UTF-8 text executable
Vous pouvez utiliser une expression régulière si vous le souhaitez:
$ file dir* dir-diff: Bourne-Again shell script, Unicode text, UTF-8 text executable dirlist: Python script, ISO-8859 text executable dirsize: Bourne-Again shell script, Unicode text, UTF-8 text executable
Moins courant, la commande file vous permet d‘obtenir des informations sur un périphérique et en particulier 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 :
Recherchez les partitions:
$ sudo fdisk /dev/sda Bienvenue dans fdisk (util-linux 2.38.1). Les modifications resteront en mémoire jusqu'à écriture. Soyez prudent avant d'utiliser la commande d'écriture. Le disque est actuellement utilisé — le repartitionner est probablement une mauvaise idée. Il est recommandé de démonter tous les systèmes de fichiers et désactiver (avec swapoff) toutes les partitions d'échange de ce disque. Commande (m pour l'aide) : p Disque /dev/sda : 447,13 GiB, 480103981056 octets, 937703088 secteurs Modèle de disque : EMTEC X150 480GB Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0xb8c3f748 Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/sda1 * 2048 58593279 58591232 27,9G 83 Linux /dev/sda2 58593280 60594175 2000896 977M 82 partition d'échange Linux / Sol /dev/sda3 60594176 80125951 19531776 9,3G 83 Linux /dev/sda4 80125952 937701375 857575424 408,9G 83 Linux Commande (m pour l'aide) : q
Avec file on cherche le type de partition:
$ sudo file -sL /dev/sda [sudo] Mot de passe de jlb : /dev/sda: DOS/MBR boot sector $ sudo file -sL /dev/sda1 /dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=2d2d939c-498e-4750-9ca1-9993c100c41a (needs journal recovery) (extents) (64bit) (large files) (huge files) $ sudo file -sL /dev/sda2 /dev/sda2: Linux swap file, 4k page size, little endian, version 1, size 250111 pages, 0 bad pages, no label, UUID=7a9544ec-dd8c-4d01-b529-45985514c593 $ sudo file -sL /dev/sda3 /dev/sda3: Linux rev 1.0 ext4 filesystem data, UUID=bedc35e5-5c56-47ee-8fb3-ecd150640528 (needs journal recovery) (extents) (64bit) (large files) (huge files)
Cela permet de trouver le type de filesystem (DOS, ext4) et de trouver l'UUID du disque, ce qui peut être pratique pour monter automatiquement le disque avec le fichier /etc/fstab.