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

158

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

Accélération-g
la source

Réponses:

183

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 similaires (comme Ubuntu), l'archivage et la compression sont séparés.

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

gzip compresse un fichier (seulement).

Donc, pour obtenir une archive compressée, vous combinez les deux, utilisez d’abord tarou paxpour obtenir tous les fichiers dans un seul fichier (archive.tar), puis gziple (archive.tar.gz). Si vous n'avez qu'un fichier à compresser (notes.txt), vous n'avez pas besoin de tar, vous devez donc gzip notes.txtindiquer le résultat notes.txt.gz. Il existe d'autres types de compression, tels que compress, bzip2et xzqui fonctionnent de la même manière que gzip (à part l'utilisation de différents types de compression bien sûr)

geirha
la source
6
Cela a du sens, mais alors, pourquoi est-il possible de créer une .7zarchive à partir de plusieurs fichiers, alors que je peux également créer une .tar.7zarchive à partir de plusieurs fichiers?
Exeleration-G
3
@ Exeleration-G 7zip ne suit pas ce schéma. C'est plus comme zip et rar. Je ne suis pas sûr de l'intérêt d'utiliser tar avec 7zip, car je ne l'ai pas utilisé moi-même.
geirha
42
@ Exeleration-G Après avoir lu les autres réponses, je vois que SaultDon a répondu à cette question. 7zip ne stocke pas la propriété Unix et la permission des fichiers archivés (il semble être principalement destiné à Windows, comme zip et rar), il est donc logique de le combiner avec tar pour obtenir la propriété et les autorisations préservées.
geirha
@geirha Marquez la question comme résolue si vous trouvez la réponse appropriée.
Ravi
1
D'après mon expérience, 7z est bien meilleur en compression qu'en zip. Quand j'ai testé, ça m'a sauvé quelque chose comme 40% de supplément
Eoin
49

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

Quand je parle d’archivage, je parle de la préservation des autorisations, de 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" son 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 supérieure, mais ne conserve pas la propriété des fichiers, les autorisations, etc. Rzip est un autre utilitaire de compression offrant une compression comparable à 7z.

Je suppose 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 de 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.).

SaultDon
la source
11

gzip ou bzip2 ne connaissent pas file system- le nom du fichier, le répertoire ou l’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 la philosophie Unix "faire une chose bien" . Le tar fonctionne bien? Laissez-le tel quel. Besoin de plus de taux de compression que gzip? Voici bzip2 ou 7zip.

Mait
la source
En fait, 7zip peut archiver comme zip ou rar.
Mait
8

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 également utiliser bzip (.tar.bz / bz2) bien que je ne sois pas sûr que cela vous conviendrait mieux car j’utilise gzip ou 7zip

MuffinStateWide
la source
4

généralement, les fichiers * .tar sont uniquement 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.

G. il
la source
3

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.

Marty Fried
la source