Pourquoi les fichiers tar et gzip ont-ils généralement une extension de fichier?

8

Les extensions de fichier ne sont pas nécessaires sur les unités, mais tous les fichiers goudronnés, compressés ou compressés que je rencontre ont une extension de fichier comme .tar, .tar.gzou .tgz.

Y a-t-il une raison particulière à cela ou est-ce juste une convention?

Scientifique fou
la source

Réponses:

17

À 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 filecommande 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, .osont 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 .shtmlet .htmldifféremment, le premier subissant un prétraitement côté serveur , le second étant servi tel quel.

Dans le cas des archives gzip, gzipne recompressera pas les fichiers dont le nom se termine par .gz, .tgzet 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.

Gilles 'SO- arrête d'être méchant'
la source
1
Les répertoires contenant des scripts de démon reçoivent parfois une extension .d, par exemple init.d, cron.d, etc.
Lie Ryan
8

Ils n'ont peut-être pas besoin d' une extension, mais cela facilite leur identification dans la sortie de ls.

développementalinsanité
la source
2
Exactement. Habituellement, il n'y a pas de drapeau "tiens-moi la main s'il vous plaît" tar, vous devez donc lui dire quel type d'archive vous avez.
Kevin Cantu
3

Les extensions de fichiers sont principalement une convention pour les humains qui utilisent le système. Il existe des outils qui utilisent l'extension de nom de fichier pour faire des choses. Par exemple, Nautilus me montre une icône différente en fonction de l'extension de fichier.

Si je vous ai donné un fichier appelé file, vous ne savez peut-être pas comment ouvrir ce fichier. Cependant, si je vous donnais un fichier nommé file.tar.gzou si file.tarvous pouviez le comprendre rapidement et facilement.

Stefan Lasiewski
la source
5
Nautilus utilise plus que l'extension de fichier pour déterminer le type de fichier. Un fichier tar.gz sans l'extension aura toujours généralement un symbole de fantaisie.
Steven D