185 votes

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

Récemment, j'ai sauvegardé beaucoup de mes données, et j'ai remarqué que je peux enregistrer des fichiers en tant que .gz ou .tar.gz, ou .7z et .tar.7z, etcetera. Quelles sont les différences entre la normale et la version .tar.*? Lequel est conseillé lors de la création de sauvegardes?

220voto

Steve Karg Points 11

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

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

  • tar regroupe 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 tar ou pax pour regrouper tous les fichiers dans un seul fichier (archive.tar), puis compressez-le avec gzip (archive.tar.gz).

Si vous n'avez qu'un seul fichier à compresser (notes.txt) : pas besoin de tar, vous pouvez simplement faire 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).

54voto

Bhavik Points 129

Ça dépend de ce que vous cherchez... Compression ou archivage?

Quand 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 mettre vos fichiers dans des paquets plus petits.

Pour préserver les autorisations des fichiers, utilisez tar:

tar cpvf backup.tar dossier

Le drapeau p sauvegarde les autorisations des fichiers. Utilisez le drapeau z pour la compression gzip ou le drapeau j pour la compression bzip.

tar czpvf backup.tar.gz dossier #backup.tgz est également acceptable
tar cjpvf backup.tar.bz2 dossier #backup.tbz2 fonctionne aussi

Si vous voulez avoir un fichier tar que vous pouvez "mettre à jour", emballez le tar en utilisant le drapeau P:

tar cpPvf backup.tar dossier

Ensuite, pour mettre à jour, remplacez 'c' par 'u' et lors du dépaquetage, vous pouvez utiliser 'k' pour préserver les fichiers qui existent déjà.

tar upPvf backup.tar dossier #mise à jour d'un fichier tar
tar xpPkvf backup.tar #extraction d'un tar avec les autorisations (p) et sans extraction (k) des fichiers qui existent déjà sur le disque

Le drapeau P sauvegarde les fichiers avec les chemins complets, donc - /home/nom_utilisateur vs home/nom_utilisateur (remarquez le slash avant).

La compression 7z offre une compression plus importante, mais ne préserve pas la propriété des fichiers, les autorisations, etc. Rzip est un autre utilitaire de compression qui offre une compression comparable à 7z également.

Je suppose qu'un fichier backup.tar.7z est simplement un fichier tar (avec des autorisations) compressé par un fichier 7z, bien que je ne serais pas surpris s'il y avait peu de compression car 7z pourrait ne pas être capable de lire les métadonnées du fichier. C'est la capacité de 7z à exclure les métadonnées du fichier qui lui permet d'offrir une grande compression (entre autres bien sûr).

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

12voto

edude05 Points 323

Gzip ou bzip2 ne savent rien sur le système de fichiers - nom de fichier, répertoire ou structure d'arborescence. Ils se contentent de compresser le flux d'entrée, puis de produire un résultat en sortie. Même gzip ou bzip2 ne peuvent pas archiver des répertoires par eux-mêmes, c'est pourquoi ils sont généralement combinés avec tar.

tar (archivage) - archive simplement la structure des fichiers. gzip, bzip2 (compression) - compriment simplement l'entrée.

Je pense que cette stratégie provient de la philosophie Unix 'faire une chose bien' do one thing well. Tar fonctionne correctement? Laissez-le tel quel. Besoin d'un meilleur taux de compression que gzip? Voici bzip2 ou 7zip.

8voto

MuffinStateWide Points 849

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 les contenus sont compressés par gzip (compression modérée) d'où le .gz et tar.7z est compressé en utilisant 7zip (généralement une compression très élevée)

lors de la sauvegarde, je recommanderais tar.7z car il offre le taux de compression le plus élevé, ce qui vous permet d'économiser de l'espace mais nécessite un programme supplémentaire (7zip). .tar.gz sera des fichiers plus gros et fera le même travail, vous pourriez également utiliser bzip (.tar.bz/bz2) bien que je ne sois pas certain que cela vous convienne mieux car j'utilise gzip ou 7zip

5voto

G. He Points 890

Typiquement, les fichiers *.tar sont simplement des fichiers tar créés par le programme tar, les fichiers *.gz sont créés par gzip, les fichiers *.tar.gz (parfois aussi *.tgz) sont des fichiers tar compressés par gzip, et les fichiers *.7z sont créés par 7zip.

Cependant, sur Linux/Unix, on peut nommer un fichier de n'importe quelle manière, donc c'est entièrement à la discrétion du créateur des fichiers.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X