Cookies de statistiques et de publicité
Nous utilisons des cookies de statistiques et de publicité, tous deux destinés à Google. Si vous refusez, rien ne change visiblement pour vous.Aller à la page de confidentialité
TAR
Regroupe des fichiers sans les compresser. L’étape d’empaquetage sous Unix, presque toujours accompagnée de GZ.
TAR
TAR est un conteneur : une enveloppe pour des flux encodés par autre chose. Il est utilisé pour l’archivage et l’échange entre programmes.
L’extension est .tar et le nom complet Tape Archive. L’un et l’autre comptent moins que ce que le fichier peut contenir, et c’est le sujet du reste de cette page.
Il remonte à 1979. La spécification est POSIX.1-2001 ustar.
À un format resté lisible aussi longtemps, on peut confier quelque chose qu’on veut retrouver dans dix ans.
Elle est publiée intégralement : n’importe qui peut l’implémenter à partir du document plutôt qu’en l’observant, et c’est pourquoi ce format apparaît dans tant de programmes et pourquoi des fichiers écrits il y a vingt ans s’ouvrent encore. Une spécification publiée n’est pas pour autant libre de redevances : quand un format enveloppe un codec, les brevets sont une question à part, que la norme ne tranche pas.
TAR enregistre son contenu à l’identique. Le réenregistrer ne change rien : vous pouvez l’ouvrir, le modifier et le réenregistrer autant de fois que vous voulez sans accumuler de dégâts, et c’est ce qui en fait un format de travail plutôt qu’un format de livraison.
TAR enregistre un répertoire : les noms, les dossiers et la structure entre eux. C’est ce qui lui permet de remplacer un dossier dans une pièce jointe.
TAR porte une somme de contrôle, pour qu’un fichier abîmé soit détecté au lieu d’être mal lu en silence.
Une somme de contrôle ne répare rien. Elle vous dit que le fichier est abîmé, ce qui fait la différence entre l’apprendre maintenant et l’apprendre de la personne à qui vous l’avez envoyé.
tar, 7-Zip et Keka le lisent, comme la plupart des programmes du même genre.
Quand un fichier ne s’ouvre pas, le format est rarement en cause : le plus souvent, c’est le programme qui est plus ancien que lui. Convertir vers quelque chose de plus ancien est le contournement fiable, et c’est à cela que sert le reste de ce site.
Aucun navigateur ne le lit.
C’est de loin la raison la plus fréquente de le convertir : non pas que le format soit mauvais, mais que l’endroit où vous voulez montrer le fichier ne sache pas le lire.
TAR est fait pour être ouvert et modifié. Gardez le fichier dans ce format tant que le travail dure, et exportez depuis lui chaque fois qu’une version finie est nécessaire.
Les reproches qui reviennent : les fichiers sont gros pour ce qu’ils contiennent.
Rien de tout cela n’est une raison d’éviter le format. Ce sont les choses à connaître avant que l’une d’elles vous surprenne, ce qui est une affirmation différente et plus utile.
TAR regroupe des fichiers en un seul fichier. Il ne les rend pas plus petits. Le nom est l’abréviation de tape archive, et il a été conçu en 1979 pour écrire une arborescence sur une bande magnétique en un flux continu — un travail où la compression était le problème de quelqu’un d’autre, et souvent celui du lecteur de bande.
Presque tout ce qui prête à confusion avec TAR en découle. Un .tar d’un dossier est très légèrement plus volumineux que le dossier d’origine, parce qu’il ajoute un en-tête avant chaque fichier et complète tout à une taille de bloc fixe. Si vous attendiez un fichier plus petit, rien ne va mal : vous avez utilisé l’outil qui regroupe plutôt que l’outil qui compresse. C’est aussi la raison pour laquelle l’ouverture d’un .tar seul est rare : presque tout ce qui circule sous ce nom est en fait un .tar.gz, .tar.xz ou un autre format composé, parce que la compression n’a jamais été intégrée à TAR lui-même.
Parce que deux programmes distincts se sont exécutés. archive.tar.gz a été regroupé par tar puis le fichier unique résultant a été compressé par gzip. .tar.bz2 utilisait bzip2, .tar.xz utilisait xz, .tar.zst utilisait zstd. La chaîne se lit de droite à gauche : déballer la compression, puis déballer le regroupement.
Les formes courtes .tgz et .txz signifient la même chose et existent parce que certains systèmes de fichiers n’acceptaient autrefois qu’un seul point. Cette composition de petits outils faisant chacun un travail est délibérée plutôt qu’accidentelle, et c’est aussi pourquoi TAR a survécu aux lecteurs de bande pour lesquels il avait été écrit.
Cet ordre est la raison pour laquelle .tar.gz bat souvent ZIP sur le même contenu. ZIP compresse chaque fichier séparément, donc mille fichiers texte similaires sont chacun serrés isolément. Tar puis gzip présente au compresseur un flux continu, ce qui lui permet de trouver des répétitions qui traversent les frontières de fichiers.
Sur du code source, des fichiers journaux ou tout ce qui contient beaucoup de petits fichiers similaires, la différence est substantielle. Sur un dossier de photographies, elle est proche de zéro, parce que les JPEG sont déjà compressés et qu’il n’y a aucune répétition entre fichiers à trouver. L’avantage est réel et il est spécifique à un type de contenu, et c’est pourquoi les logiciels s’expédient traditionnellement en .tar.gz et les photos en .zip.
Ce même flux continu explique pourquoi extraire un seul fichier d’un grand .tar.gz est lent. Il n’y a pas d’index, et la compression signifie que les positions en octets ne peuvent pas être calculées à l’avance, donc la seule façon d’atteindre un fichier situé vers la fin est de décompresser tout ce qui le précède.
ZIP a fait le compromis inverse. Son index se trouve à la fin de l’archive et chaque fichier est compressé indépendamment, donc n’importe quel élément peut être extrait immédiatement. C’est toute la comparaison : TAR pour les archives lues depuis le début, ZIP pour les archives où l’on picore. Pour un téléchargement de plusieurs gigaoctets contenant des milliers de petits fichiers, le désavantage est réel et se chiffre en minutes perdues à chaque extraction d’un fichier isolé.
Les permissions Unix, la propriété, les liens symboliques et les liens physiques, ainsi que des horodatages à la précision supérieure à ce que ZIP enregistre. C’est pourquoi les logiciels sont distribués en .tar.gz plutôt qu’en ZIP : le déballage doit produire une arborescence où l’exécutable reste exécutable et où les liens pointent toujours là où ils pointaient. Pour un script d’installation ou un paquet de système, perdre le bit d’exécution rend la livraison inutilisable, et TAR est le seul format courant qui le porte sans cérémonie.
Sous Windows, la plupart de tout cela n’a nulle part où aller et est silencieusement écarté. Rien ne casse, mais un .tar.gz déballé sous Windows puis reconditionné a perdu les permissions qu’il existait pour porter — ce qui compte si l’archive retourne vers un serveur. La convention tacite consiste à faire l’aller-retour sur un système qui connaît les deux, ou à ne pas s’attendre à un cycle Windows-Unix Windows sur le même paquet.
gzip est rapide, universel, et le choix sûr par défaut ; c’est ce que presque tout produit et tout ce qui existe le lit. xz comprime notablement plus et prend considérablement plus de temps, ce qui convient à quelque chose écrit une fois et téléchargé plusieurs fois. bzip2 se situe entre les deux et est largement un choix hérité aujourd’hui. zstd est le nouvel entrant et comprime presque comme xz à des vitesses proches de gzip.
Pour un fichier remis à quelqu’un d’autre, .tar.gz reste la bonne réponse, parce que la limite est ce que le destinataire peut ouvrir plutôt que ce qui comprime le mieux. Les autres valent la peine d’être choisis quand vous connaissez l’autre extrémité. La différence entre xz et gzip sur un gros paquet de code source peut représenter plusieurs mégaoctets, et sur un miroir de distribution elle justifie le temps de compression supplémentaire. Pour un envoi personnel ou un script de sauvegarde local, gzip suffit largement.
Les distributions de code source, la distribution de logiciels sous Linux et macOS, les couches d’images Docker, les sauvegardes de serveurs, et les fichiers d’export que produisent les panneaux de contrôle d’hébergement et les bases de données. Si vous avez téléchargé quelque chose à faire tourner sur un serveur, il est très probablement arrivé sous cette forme.
Cela se voit aussi sous Windows plus qu’autrefois. Windows déballe les .tar.gz nativement depuis 2023 et la commande tar intégrée y figure depuis 2018, donc l’époque où il fallait un outil tiers rien que pour en ouvrir un est largement passée.
Convertissez quand l’archive va à une personne plutôt qu’à une machine — un collègue sous Windows, un formulaire de téléversement web, une pièce jointe de messagerie. ZIP est le format que tous les systèmes d’exploitation ouvrent sans y penser, et envoyer autre chose revient à demander au destinataire de résoudre un problème sans le dire.
Ne convertissez pas quand l’archive retourne vers un système Unix. Reconditionner en ZIP supprime les permissions, la propriété et les liens symboliques que le format existait pour porter, et le résultat déballé peut ne plus fonctionner du tout. Pour une sauvegarde de serveur ou une distribution de code source, .tar.gz n’est pas un obstacle à contourner ; c’est la raison pour laquelle l’archive fonctionne.
Le bon réflexe consiste à choisir le format de destination en fonction de ce qui va l’utiliser, et non en fonction de ce qui est déjà sur le disque. Une archive que vous avez reçue en .tar.gz peut très bien être reconditionnée en .zip si elle va à un public non technique, et une archive en .zip mérite d’être réencapsulée en .tar.gz si elle va alimenter un script d’installation Unix.
| Extension | .tar |
|---|---|
| Type de média | application/x-tar |
| Première publication | 1979 |
| Spécification | POSIX.1-2001 ustar |