75 votes

Qu'est-ce qui est le plus efficace - la compression tar ou zip ? Quelle est la différence entre tar et zip ?

Je travaille dans un environnement Linux et je veux connaître les commandes tar et zip.

Qu'est-ce qui est le plus efficace - tar ou zip ? J'ai également besoin de connaître les différences entre les commandes tar et zip. Quelqu'un peut-il me les expliquer ?

89voto

Wim Points 1176

tar ne fait qu'un seul fichier à partir de plusieurs fichiers, il ne fait pas de compression à moins de combiner un programme de compression tel que gzip o bzip2 (que vous pouvez appeler depuis l'intérieur de tar en utilisant le -z o -j respectivement). zip combine à la fois l'archivage et la compression dans un seul programme.

64voto

MaHuJa Points 741

tar

  • On suppose que vous allez lire d'un bout à l'autre - "Tape ARchive". (L'ancienneté de la commande montre...)
  • Ne fait pas de compression, mais vous pouvez compresser l'ensemble du flux résultant en le faisant passer par gzip et bzip2 (fait en interne avec -z ou -j).
  • Stocke les attributs des fichiers unix : uid, gid, permissions (plus particulièrement exécutable). La valeur par défaut peut dépendre de votre distribution, et peut être changée avec les options.

zip

  • Stocke les attributs MSDOS . (Archive, Lecture seule, Caché, Système)
  • Compresser chaque fichier, puis les ajouter à une archive
  • Inclut un tableau de fichier à la fin du fichier
  • et comme résultat des deux premiers, permet de lire uniquement les parties exactes du fichier dont vous avez besoin.

Le fait que zip compresse les fichiers séparément aura un impact sur les taux de compression, en particulier sur de nombreux petits fichiers similaires.

(Du moins, c'était tout à fait correct il y a dix ans).

24voto

PatrickvL Points 2593

Tar préserve beaucoup plus de métadonnées que Zip, voir ma comparaison (elle est légèrement dépassée) :

enter image description here

(Cliquez pour agrandir)

Tar réussit 65 % des tests, alors que Zip n'en réussit que 17 %. J'ai fait la suite de tests disponible sur github sous licence BSD pour que vous puissiez essayer par vous-même si vous avez un Mac. Pour linux, je ne suis pas sûr qu'il y ait des métadonnées, donc ces tests peuvent ne pas être pertinents.

14voto

Naseer Points 1223

L'efficacité peut être mesurée de différentes manières :

  1. Combien de temps dure le processus ?
  2. Quelle est la taille des fichiers résultants ?

D'autres questions se posent également, comme "Dans quelle mesure les outils permettant de manipuler les archives résultantes sont-ils courants ?".

Donc, par exemple, bzip2 crée des fichiers plus petits que gzip mais cela peut prendre beaucoup plus de temps. Par ailleurs, d'après mon expérience gzip est universel sur les systèmes de type Unix, mais bzip2 ne l'est toujours pas (bien qu'il soit très courant et généralement facile à obtenir).

9voto

Matthew Flaschen Points 2460

Comme Wim l'a noté, le tar lui-même ne compresse pas. Si vous ajoutez la compression du tar (par exemple pour obtenir un .tar.gz ou .tar.bz2), vous comprimez l'ensemble du fichier tar en une seule fois. En revanche, zip compresse chaque fichier individuellement.

L'efficacité dépend de la charge de travail. Plus précisément, zip vous permet d'accéder directement aux fichiers individuels. Avec tar, vous devez d'abord rechercher les fichiers indésirables (compressés) avant. Les performances de la compression dépendent de ce que vous comprimez. tar con bzip2 est souvent préférable pour un grand nombre de fichiers similaires (par exemple, un répertoire source). zip pourrait être meilleure si chaque fichier a un contenu très différent.

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