À l'origine, sur les systèmes Unix, les extensions sur les noms de fichiers étaient une question de convention. Ils ont permis à un être humain de choisir le bon programme pour ouvrir un fichier. La convention moderne consiste à utiliser des extensions dans la plupart des cas; les exceptions courantes sont:
- Seuls les fichiers normaux ont une extension, pas les répertoires ou les noms de périphériques. Le simple fait d'être un répertoire ou un périphérique suffit pour indiquer le type de fichier.
- Les exécutables destinés à être appelés directement n'ont pas d'extension. Le simple fait d'être exécutable est suffisamment d'informations pour l'utilisateur, et le noyau ne se soucie pas des noms de fichiers.
- Les fichiers commençant par un mot en majuscules sont souvent des fichiers texte, par exemple
README
, TODO
. Parfois , il y a une pièce supplémentaire qui indiquent une sous - catégorie, par exemple INSTALL.linux
, INSTALL.solaris
.
- Les fichiers dont le nom commence par un point sont configuration ou les fichiers état d'une application particulière, et ne disposent souvent pas d'extension, par exemple
.bashrc
, .profile
, .emacs
.
- Il existe quelques cas traditionnels, par exemple
Makefile
.
(Ce sont des cas courants, pas des règles strictes.)
La plupart des formats de fichiers binaires contiennent également une sorte d'en-tête qui décrit les propriétés du fichier et permet généralement d'identifier le format de fichier à l'aide de nombres magiques . La file
commande examine ces informations et vous montre ses suppositions.
Parfois, l'extension de fichier donne plus d'informations que le format de fichier, parfois c'est l'inverse. Par exemple, de nombreux formats de fichiers sont constitués d'une archive zip : bibliothèques Java ( .jar
), documents OpenOffice ( .odt
,…), document Microsoft Office ( .docx
,…), etc. Un autre exemple est les fichiers de code source, où l'extension indique le langage de programmation, qui peut difficile pour un ordinateur de deviner automatiquement à partir du contenu du fichier. Inversement, certaines extensions sont extrêmement ambiguës, par exemple, .o
sont utilisées pour les fichiers de code compilés (fichiers objet ), mais l'inspection du contenu du fichier révèle généralement facilement à quel type de machine et système d'exploitation le fichier objet est destiné.
Un avantage de l'extension est qu'il est beaucoup plus rapide de la reconnaître que d'ouvrir le fichier et de rechercher des séquences magiques. Par exemple, l'achèvement des noms de fichiers dans des shells est presque toujours basé sur le nom (principalement l'extension), car la lecture de chaque fichier dans un grand répertoire peut prendre beaucoup de temps alors que la lecture des noms de fichier est assez rapide pour une Tabpresse.
Parfois, la modification de l'extension d'un fichier peut vous permettre de dire comment un fichier doit être interprété, lorsque deux formats de fichier sont presque, mais pas totalement identiques. Par exemple, un serveur Web peut traiter .shtml
et .html
différemment, le premier subissant un prétraitement côté serveur , le second étant servi tel quel.
Dans le cas des archives gzip, gzip
ne recompressera pas les fichiers dont le nom se termine par .gz
, .tgz
et quelques autres extensions. De cette façon, vous pouvez exécuter gzip *
pour compresser tous les fichiers d'un répertoire et les fichiers déjà compressés ne sont pas modifiés.