web-dev-qa-db-fra.com

Sous Linux / Unix, est-ce que .tar.gz versus .Zip est important?

Les programmes multiplates-formes sont parfois distribués sous la forme .tar.gz pour la version Unix et .Zip pour la version Windows. Cela a du sens lorsque le contenu de chacun doit être différent.

Si, toutefois, le contenu devait être identique, il serait plus simple de ne faire qu'un téléchargement. Windows préfère le format .Zip car c'est le format qu'il peut gérer immédiatement. Est-ce important sur Unix? C'est-à-dire que j'ai essayé aujourd'hui de décompresser un fichier sous Ubuntu Linux, et cela a bien fonctionné; Y at-il un problème avec tout système d’exploitation actuel de type Unix, ou est-il acceptable de simplement fournir un fichier .Zip à l’échelle?

65
rwallace

Nécromancie.
Oui, c'est important.
En fait, cela dépend.

tar.gz

  • 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.
  • Consolidation de tous les fichiers à archiver en un seul fichier ("Archivage sur bande").
  • La compression réelle est effectuée par GZIP, sur le fichier .tar

Zip

  • Stocke les attributs MSDOS . (Archive, Readonly, Hidden, System)
  • Compresse chaque fichier individuellement, puis consolide les fichiers compressés individuellement dans un fichier
  • Inclut une table de fichiers à la fin du fichier

Étant donné que Zip compresse les fichiers individuellement, une archive Zip aura probablement une taille plus grande (en particulier avec de nombreux fichiers plus petits - pensez aux fichiers de configuration).

Ainsi, à part la taille du fichier, si vous compressez plusieurs fichiers sous Linux/Unix, puis décompressez-les, les attributs de fichiers disparaîtront (à tout le moins, ceux qui ne sont pas pris en charge par MS-DOS - dépend de ce que Zip logiciel que vous utilisez). Cela peut avoir de l'importance ou non, auquel cas ce n'est pas grave (car la différence de taille de fichier est dans la plupart des cas négligeable).

26
Quandary

tar gz est préférable pour Linux/Unix car il conserve les autorisations, telles que "exécutable" sur les scripts.

35
Zam

La plupart des distributions Linux actuelles sont par défaut équipées de la compatibilité Zip. Mais comme indiqué par nc3b, tar et gzip sont plus courants sur les systèmes Linux/Unix. Si vous avez besoin d'une compatibilité de 95% sur ces systèmes, envisagez d'utiliser tar et gzip. Si vous avez besoin de seulement 85%, Zip fera l'affaire.

31
BloodPhilia

tar/gzip est un format assez merdique car l'archive ne peut pas être consultée, mise à jour, vérifiée ni même ajoutée ... sans avoir à décompresser l'archive entière.

Zip est bien meilleur à cet égard .... vous pouvez rapidement obtenir le contenu d’un fichier Zip, l’ajouter à celui-ci sans recompresser la première partie, etc.

Zip a des limitations de taille ... en fonction de la version de "Zip" que vous utilisez ... et cela peut poser problème. mais l'outil info-Zip standard fourni avec la plupart des systèmes d'exploitation de type Linux n'a pas de limite de taille et conserve parfaitement les droits d'accès aux fichiers.

voir: https://en.wikipedia.org/wiki/Info-Zip pour connaître les capacités

19
Erik Aronesty

Les installations Barebones Unix ne contiennent pas unzip (c'est-à-dire les installations du serveur), mais elles contiennent toujours tar et gzip . Si votre public est constitué de serveurs, je choisirais gzip .

Aussi gzip a une compression plus grande que Zip , donc le fichier sera plus petit .

9
Rwky

Oui c'est important. Tar est un archiveur. Et dans tar.gz, nous compressons cette archive.

Zip est à la fois un archiveur et un compresseur.

Si vous comparez la compression, d'après mon expérience, gzip est bien meilleur que Zip.

Et l'autre différence significative est mentionnée dans une autre réponse . Si vous avez une très grande archive de fichiers et souhaitez extraire un petit fichier, Zip vous permet de le faire. Mais avec tar.gz, vous devez extraire une archive entière.

3
Rakesh Reddy

tar et gzip sont beaucoup plus communs sur * nix-es que unzip. Par exemple, pour le moment sur mon Arch-2009.08, il n'y a pas de unzip.

1
nc3b

La décision se résume essentiellement à celles-ci:

  • GZIP conserve les autorisations de fichiers Unix , en tant que fichiers autorisés à s'exécuter.

  • D'autre part, Zip fonctionne tel quel sous Windows.