GNU/Linux >> Tutoriels Linux >  >> Linux

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

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


goudron

  • En supposant que vous lisez d'un bout à l'autre - "Tape ARchive". (L'âge de la commande montre...)
  • Ne fait pas de compression, mais vous pouvez compresser l'intégralité du flux résultant en le faisant passer par ex. gzip et bzip2 (fait en interne avec -z ou -j)
  • Stocke les attributs de fichier Unix :uid, gid, permissions (notamment exécutable). La valeur par défaut peut dépendre de votre distribution et peut être modifiée avec des options.

zip

  • Stocke les attributs MSDOS . (Archive, Lecture seule, Masqué, Système)
  • Compresse chaque fichier, puis les ajoute à une archive
  • Inclut un tableau de fichiers à la fin du fichier
  • et à la suite 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.

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


Tar conserve beaucoup plus de métadonnées que Zip, voir ma comparaison (elle est légèrement obsolète) :

(Cliquez pour zoomer)

Tar passe 65% des tests, là où Zip ne passe que 17%. J'ai rendu la suite de tests disponible sur github sous licence BSD afin que vous puissiez essayer par vous-même si vous avez un Mac. Pour Linux, je ne sais pas s'il existe des métadonnées, donc ces tests peuvent ne pas être pertinents.


Linux
  1. La différence entre .exrc et .vimrc ?

  2. Quelle est la différence entre strtok_r et strtok_s en C ?

  3. Quelle est la différence entre adduser et useradd ?

  4. Quelle est la différence entre `fallocate --dig-holes` et `fallocate --punch-hole` sous Linux ?

  5. Quelle est la différence entre unlink et rm ?

Quelle est la différence entre Linux et Unix ?

La différence entre plus, moins et la plupart des commandes

Quelle est la différence entre la connexion et le shell sans connexion

Quelle est la différence entre la commande apt et apt-get ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?