web-dev-qa-db-fra.com

Quelle est la différence entre .tar.gz et .gz, ou .tar.7z et .7z?

Récemment, j'ai sauvegardé une grande partie de mes données et j'ai remarqué que je pouvais enregistrer des fichiers sous le nom .gz ou .tar.gz ou .7z et .tar.7z, etc. Quelles sont les différences entre la variante normale et la variante .tar.*? Lequel d'entre eux est conseillé lors de la sauvegarde?

153
Exeleration-G

Si vous venez d'un environnement Windows, vous connaissez peut-être les formats Zip et rar. Ce sont des archives de plusieurs fichiers compressés ensemble.

Dans les systèmes Unix et de type Unix (comme Ubuntu), l'archivage et la compression sont séparés.

tar place plusieurs fichiers dans un seul fichier (tar).

gzip compresse un fichier (uniquement).

Donc, pour obtenir une archive compressée, vous combinez les deux. Commencez par utiliser tar ou pax pour obtenir tous les fichiers dans un seul fichier (archive.tar), puis gzip (archive.tar.gz). Si vous n'avez qu'un fichier à compresser (notes.txt), vous n'avez pas besoin de tar, vous n'avez donc qu'à copier gzip notes.txt, ce qui donnera notes.txt.gz. Il existe d'autres types de compression, tels que compress, bzip2 et xz qui fonctionnent de la même manière que gzip (à part l'utilisation de différents types de compression bien sûr)

179
geirha

Cela dépend de ce que vous recherchez ... Compression ou archivage?

Lorsque je parle d’archivage, je veux dire préserver les autorisations, la structure des répertoires, etc.

La compression peut ignorer la plupart de cela et simplement obtenir vos fichiers dans des paquets plus petits.

Pour conserver les autorisations sur les fichiers, utilisez la commande tar:

tar cpvf backup.tar folder

L'indicateur p permettra de sauvegarder les autorisations de fichier. Utilisez le drapeau z pour la compression gzip ou le drapeau j pour la compression bzip.

tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too

Si vous voulez avoir un fichier tar, vous pouvez "mettre à jour" le package en utilisant l'indicateur P:

tar cpPvf backup.tar folder

Ensuite, pour mettre à jour, remplacez "c" par "u" et lors de la décompression, vous pouvez utiliser "k" pour conserver les fichiers existants.

tar upPvf backup.tar folder #updating a tar file
tar xpPkvf backup.tar #extracting a tar with permissions(p) and not extracting(k) files that exist on disk already

L'indicateur P enregistre les fichiers avec les chemins d'accès complets, donc -/home/nom d'utilisateur vs home/nom d'utilisateur (remarquez la barre oblique suivante).

La compression 7z offre une compression plus importante, mais ne conserve pas la propriété du fichier, les autorisations, etc. Rzip est un autre utilitaire de compression qui offre une compression comparable à 7z.

J'imagine qu'un fichier backup.tar.7z est simplement un fichier tar (avec autorisations) compressé par un fichier 7z, bien que je ne serais pas surpris que peu de compression se produise car 7z risque de ne pas pouvoir afficher les métadonnées du fichier. C'est la capacité de 7z d'exclure les métadonnées du fichier qu'il peut offrir une excellente compression (entre autres bien sûr).

La compression dépend également entièrement du type de données. Certains fichiers ne sont pas bien compressés car ils peuvent déjà être compressés avec un autre moyen (par exemple, .mp3, .jpg, .tiff/with lzma, .rpm, etc.).

48
SaultDon

gzip ou bzip2 ne connaissent pas file system - nom de fichier, répertoire ou structure d'arborescence. Il compresse simplement le flux d'entrée, puis le résultat en sortie. Même gzip ou bzip2 ne peuvent pas archiver des répertoires par eux-mêmes, c'est pourquoi il est généralement associé à tar.

tar (archiver) - archive simplement la structure de fichier. gzip, bzip2 (compresseur) - il suffit de compresser l’entrée.

Je pense que cette stratégie est venue de 'fait une chose bien' philosophie Unix. Le tar fonctionne bien? Laissez-le tel quel. Besoin de plus de taux de compression que gzip? Voici bzip2 ou 7zip.

11
Mait

ses différents styles de compression, tar en lui-même est simplement archivé (peu ou pas de compression). tar.gz est une archive tar, mais le contenu est compressé par gzip (compression modérée). Par conséquent, les fichiers .gz et tar.7z sont compressés à l'aide de 7Zip (généralement une compression très élevée).

lors de la sauvegarde, je recommanderais tar.7z, car il a le taux de compression le plus élevé, ce qui vous permet d'économiser de l'espace, mais utilise un programme supplémentaire (7Zip). .tar.gz seront des fichiers plus volumineux et feront le même travail, vous pouvez aussi utiliser bzip (.tar.bz/bz2) bien que je ne sois pas sûr que cela vous conviendrait mieux car j’utilise gzip ou 7Zip

8
MuffinStateWide

en règle générale, les fichiers * .tar ne sont que des fichiers tar créés par le programme tar, les programmes * .gz sont créés par gzip, * .tar.gz (parfois également * .tgz) sont des fichiers tar gzipés, et * .7z sont créés par 7Zip.

Cependant, sous Linux/Unix, on peut nommer un fichier à sa guise, il est donc entièrement laissé à la discrétion du créateur des fichiers.

3
G. He

Tar (Tape Archiver) est traditionnellement utilisé comme conteneur sous Unix/Linux pour conditionner les fichiers à déplacer. Il conditionne la structure de fichier et maintient les attributs de fichier, mais ne compresse pas les fichiers.

Les programmes de compression compressent le fichier pour le rendre plus petit, mais ils peuvent ne pas gérer plusieurs fichiers et/ou ne pas gérer les attributs de fichier nécessaires pour Linux. Comme tar existe déjà et est bien pris en charge, il n’ya aucune raison pour que les programmes d’archivage dupliquent cette fonctionnalité, qui est spécifique à la plate-forme (re, différente pour Windows et Linux). En outre, différents programmes de compression peuvent fonctionner différemment sur différents types de fichiers, il est donc souhaitable de pouvoir choisir plusieurs fichiers.

3
Marty Fried