Pourquoi Linux ne se soucie pas des extensions de fichiers, mais vous devriez quand même le faire
Sommaire
Points clés à retenir
- Linux ne s'appuie généralement pas sur les extensions de fichiers ; il obtient le type d'un fichier en utilisant des « nombres magiques » dans le fichier lui-même.
- Les applications Linux, y compris les fichiers GNOME, peuvent toujours utiliser des extensions pour déterminer le type de fichier.
- L’utilisation d’extensions de fichiers peut contribuer à l’interopérabilité et à la reconnaissance plus facile des types de fichiers.
Vous êtes probablement habitué au suivi et à la modification des extensions de fichiers dans les noms de fichiers, surtout si vous avez grandi avec Windows. Linux, cependant, utilise les extensions de fichiers différemment, les ignorant complètement dans certains cas. Alors, que se passe-t-il et les extensions sont-elles importantes ?
En quoi les extensions de fichiers sont-elles différentes sous Linux ?
La plupart des systèmes informatiques, en particulier Windows, utilisent des extensions de fichiers d'une manière ou d'une autre. Une extension de fichier est un groupe de 2 à 4 lettres (parfois des chiffres) à la fin d'un nom de fichier. Cela peut être « .html » pour une page Web, « .jpg » pour une image JPEG, etc.
Certains systèmes sont très stricts concernant les extensions, qui sont effectivement requises. Linux est plus flexible et, dans de nombreux cas, ne se soucie pas vraiment de l'extension du fichier. Vous êtes libre d'appeler votre fichier image « octopus.png », « octopus.image » ou même simplement « octopus ».
Pourquoi les extensions n'ont (généralement) pas d'importance
Historiquement, Linux diffère de Windows, préférant déterminer le type d'un fichier via le contenu du fichier plutôt que par son nom. Chaque approche a ses propres avantages, donc aucune n’est bonne, mauvaise ou meilleure que l’autre.
La manière standard de trouver un type de fichier sous Linux utilise des « nombres magiques » ; modèles de texte, ou octets bruts, qui indiquent un type particulier de fichier. Par exemple, la commande file imprime le type d'un fichier :
En raison de la manière dont Linux gère les types de fichiers, vous pouvez modifier l'extension d'un fichier et la commande file reconnaîtra toujours son type réel :
En général, les applications fonctionneront toujours parfaitement, quelle que soit l'extension de fichier que vous utilisez. Vous pouvez même supprimer complètement l’extension du fichier sans endommager le fichier et vous ne devriez avoir aucun problème. Jusqu'à ce que, bien sûr, vous le fassiez.
Quand les extensions comptent réellement
Linux a tendance à ne pas se soucier des extensions de fichiers, mais les applications sont toujours libres de se comporter comme elles le souhaitent. Même les applications principales comme les fichiers de GNOME (Nautilus) utilisent des extensions pour déterminer le type de fichier. Par exemple, voici deux copies du même fichier avec des extensions différentes :
Notez que Fichiers signale un type JPEG pour le fichier avec une extension JPG, même s'il est au format PNG. Cela peut être dû au fait que l'utilisation d'une extension de fichier est plus efficace. L'approche magique repose sur l'ouverture du fichier et la lecture d'une certaine partie de son contenu. L'inspection du nom de fichier est beaucoup plus rapide, même si elle est moins précise.
Certains types de fichiers dépendent davantage d’une extension. Par exemple, un fichier XLSX est un type de fichier compressé, l'extension est donc importante. Sans cela, une application comme xdg-open ne fera pas tout à fait ce que vous attendez. Cet exemple utilise un fichier de feuille de calcul Excel nommé sample.xlsx et une copie de ce fichier nommée sample2, sans extension.
Alors que la commande file reconnaît les deux fichiers comme des types Microsoft Excel, xdg-open est confus et ouvre le fichier sans extension à l'aide d'Archive Manager. Notez que Files le signale également comme une « archive Zip ».
Il est important de garder à l’esprit qu’il existe d’autres bonnes raisons d’utiliser des extensions de fichiers :
- Il peut être utile de reconnaître immédiatement le type d'un fichier à partir d'une liste de fichiers.
- Il peut être judicieux de regrouper les fichiers associés par leur nom de fichier et d'utiliser leur extension pour refléter leur type. Par exemple, dans un programme C, vous pouvez avoir un fichier main.c contenant le code lui-même et un fichier d'en-tête main.h contenant une définition de l'interface du programme.
- Cela facilitera souvent le fonctionnement avec différents systèmes, qui peuvent s'appuyer sur des extensions, comme Windows.
En résumé, même si vous n'avez peut-être pas besoin d'utiliser des extensions de fichiers et qu'il est utile de comprendre leur utilité sous Linux, vous devriez probablement quand même les utiliser pour éviter tout casse-tête.