web-dev-qa-db-fra.com

Quelle est la différence avec les différents types d'archives .tar?

Quelqu'un pourrait-il me dire ce qui se passe avec tant d'archives et en quoi diffèrent-elles?

Il y a au moins cinq personnes auxquelles je peux penser, .tar.tz, .tar.gz, .tar.bz2, .tar.lz, .tar.z

Quel est le meilleur pour quelles applications? Cela semble idiot de faire autant de variantes du même fichier mais je suis sûr qu’il ya une raison.

16
Trevor Gross

Les suffixes .gz, .xz, .bz2, .7z, .lz, .z sont utilisés pour indiquer que le fichier est compressé avec cette compression. algorithme. Son utilisation ne se limite pas aux fichiers .tar, vous verrez également des fichiers tels que initrd.gz (un disque RAM initial compressé) ou manual.txt.gz (pour un document texte compressé). Vous pouvez également voir file.tgz qui indique également une archive tar compressée au format gzip (comme file.tar.gz).

L'extension de fichier est une convention, elle ne décrit pas nécessairement le contenu du fichier. Pour vérifier le type de fichier que vous manipulez, utilisez la commande file. Exemple:

$ file data.tar.gz
data.tar.gz: gzip compressed data, from Unix
$ gunzip -c data.tar.gz | file -
/dev/stdin: POSIX tar archive (GNU)

D'après mon expérience, les fichiers compressés au format gzip (.gz) sont les plus courants. Il est rapide en compression et en décompression, bien qu'il existe d'autres algorithmes qui donnent de meilleurs taux de compression.

18
Lekensteyn

En plus de la réponse @Lekensteyn, je voudrais ajouter que ce comportement est basé sur Faites une chose et faites-le bien philosophie - Le programme tar sait comment mettre plusieurs fichiers dans un flux unique (avec l’extension .tar), gzip sait comment compresser un fichier (en ajoutant l’extension .gz) *. En combinant ces outils, vous pouvez créer une commande qui compresse plusieurs fichiers en un seul fichier .tag.gz.

Cette approche est très flexible: vous pouvez combiner quelques commandes Unix standard pour faire toutes sortes de choses. Par exemple, si vous écrivez un meilleur programme pour compresser des fichiers, vous n'avez pas besoin de modifier tar pour lui permettre de créer des fichiers .tar.mymegazip. Au lieu de cela, vous dirigez simplement la sortie de tar vers votre compresseur. .

De même, tar ne connaît rien à SSH, mais en combinant des commandes, vous pouvez créer un script qui archive les fichiers, les télécharge sur une machine distante via SSH et les désarchive.

Comparez ceci à la commande Zip, qui ne provient pas de Unix. Elle possède des outils intégrés pour compresser des répertoires entiers, chiffrer des fichiers, diviser l'archive en fichiers zip plus petits, etc.


(note de bas de page) - oui, tar peut gzip ou bzip lui-même en utilisant les commutateurs -z et -j, ils ont été ajoutés pour plus de commodité et GNU tar est en fait Générer gzip ou bzip2 comme un nouveau processus.

8
Sergey