Lorsque vous travaillez sur la ligne de commande Linux, il peut arriver que vous rencontriez un fichier qui est une archive (disons un fichier .zip), mais son extension (ou son absence) suggérerait le contraire. C'est dans des moments comme ceux-ci, le fichier La commande s'avère utile car elle vous permet de déterminer le type de fichier réel.
Dans ce tutoriel, nous aborderons les bases du fichier commande en utilisant des exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples mentionnés ici ont été testés sur une machine Ubuntu 18.04 LTS.
Commande de fichier Linux
Comme déjà mentionné au début, la commande file sous Linux vous permet de voir le type de fichier auquel vous avez affaire. Voici sa syntaxe :
file [OPTIONS] file1 file2 ....
Et voici comment la page de manuel de l'outil l'explique :
Le fichierfile tests each argument in an attempt to classify it. There are three
sets of tests, performed in this order: filesystem tests, magic tests,
and language tests. The first test that succeeds causes the file type to
be printed.
The type printed will usually contain one of the words text (the file
contains only printing characters and a few common control characters and
is probably safe to read on an ASCII terminal), executable (the file con?
tains the result of compiling a program in a form understandable to some
UNIX kernel or another), or data meaning anything else (data is usually
“binary” or non-printable). Exceptions are well-known file formats (core
files, tar archives) that are known to contain binary data. When adding
local definitions to /etc/magic, make sure to preserve these keywords.
Users depend on knowing that all the readable files in a directory have
the word “text” printed. Don't do as Berkeley did and change “shell
commands text” to “shell script”.
Voici quelques exemples de style questions-réponses qui devraient vous donner une meilleure idée du fonctionnement de la commande file.
Q1. Comment utiliser la commande file ?
Simple, il suffit d'exécuter 'file' avec un nom de fichier en entrée. Par exemple :
file test
Puisque 'test' est un répertoire sur mon système, la commande file m'a dit exactement cela. Voici le résultat produit :
test: directory
Q2. Comment tester plusieurs fichiers ?
C'est assez simple aussi. Passez simplement le nom des fichiers en entrée, comme nous l'avons fait dans l'exemple précédent.
Voici un exemple :
file test test.txt .local
Et voici le résultat produit par cette commande :
test: directory
test.txt: ASCII text
.local: directory
Q3. Comment faire en sorte que le fichier n'affiche que le type en sortie ?
Comme vous pouvez le voir dans la sortie de la commande file jusqu'à présent, la sortie contient deux choses :le nom du fichier et son type. Cependant, si vous le souhaitez, vous pouvez créer un fichier pour produire simplement du type dans la sortie. Cela peut être fait en utilisant l'option de ligne de commande -b.
Par exemple, la commande suivante :
file -b test
produit la sortie suivante sur mon système :
directory
Q4. Comment voir le type de fichiers MIME ?
Pour afficher le type MIME d'un fichier, utilisez l'option de ligne de commande -i. Voici un exemple :
Q5. Comment changer le séparateur en sortie ?
Comme nous l'avons vu plus haut, en mode par défaut, la commande file produit en sortie un nom de fichier suivi de son type. Ces deux détails sont séparés par deux-points (:). Cependant, si vous le souhaitez, vous pouvez modifier ce séparateur à l'aide de l'option de ligne de commande -F.
Par exemple :
file -F " +" test
produit la sortie suivante :
test + directory
Conclusion
Pour conclure, la lime est un outil important à avoir dans sa cagnotte. Nous venons de gratter la surface ici car l'outil offre beaucoup plus de fonctionnalités en termes d'options de ligne de commande. Une fois que vous avez terminé avec tout ce dont nous avons discuté ici, vous pouvez vous diriger vers la page de manuel de la commande de fichier pour en savoir plus.