Tar compresse-t-il réellement les fichiers ou les regroupe-t-il simplement?

Jai généralement supposé que tar était un utilitaire de compression, mais je ne suis pas sûr quil comprime réellement les fichiers, ou est-ce juste comme un fichier ISO, un fichier pour contenir des fichiers?

Commentaires

Réponse

Tar est un outil darchivage (Tape ARchive), il ne collecte que les fichiers et leurs métadonnées ensemble et produit un fichier. Si vous souhaitez compresser ce fichier ultérieurement, vous pouvez utiliser gzip / bzip2 / xz. Pour plus de commodité, tar fournit des arguments pour compresser larchive automatiquement pour vous. Consultez la page de manuel de tar pour plus de détails.

Commentaires

  • Un léger clarification sur la réponse. Cest GNU tar qui fournit ces arguments de compression supplémentaires. Par exemple, Solaris tar ne fournit pas darguments pour la compression.
  • oooh, cest ' pourquoi je continue de voir thing.tar.7z
  • BSD tar fournit également un argument pour la compression, bien quil naccepte que z et détermine la méthode de compression basée sur lextension, alors que GNU tar a un zZjJ arguments pour les différentes méthodes de compression.
  • Il suffit de lire la page de manuel BSD tar, et il savère que je me suis trompé, BSD tar utilise des pour la compression, tout comme GNU tar. Cependant, il détecte automatiquement la compression lors de la décompression, alors que GNU tar attend zZjJ alors aussi.
  • @wingedsubmariner: non; les versions modernes de GNU tar se décompressent automatiquement sans avoir besoin des options -zZjJ.

Answer

tar produit des archives; la compression est une fonctionnalité distincte. Cependant tar peut à lui seul réduire lutilisation de lespace lorsquil est utilisé sur un grand nombre de petits fichiers qui sont plus petits que la taille du cluster du système de fichiers. Si un système de fichiers utilise 1 Ko clusters, même un fichier qui contient un seul octet consommera 1 Ko (plus un inode). Une archive tar na pas cette surcharge.

BTW, un ISO file nest pas vraiment « un fichier pour contenir des fichiers » – cest en fait une image de tout un système de fichiers (conçu à lorigine pour être utilisé sur des CD) et sa structure est donc considérablement plus complexe.

Commentaires

  • En fait, un fichier vide ne consommera pas 1 Ko. Un fichier de 1 à 1023 octets.
  • @psusi donc pour un fichier de 1 à 1023 octets, 1 024 consommera toujours, ce qui entraîne un gaspillage de 1023 à 1 octets.

Réponse

La commande tar UNIX dorigine na pas compressé les archives. Comme mentionné dans un commentaire, Solaris tar ne se compresse pas. HP-UX, ni AIX, FWIW non plus. Par convention, les archives non compressées se terminent par .tar.

Avec GNU / Linux, vous obtenez GNU tar. (Vous pouvez installer GNU tar sur dautres systèmes UNIX.) Par défaut, il ne compresse pas; cependant, il compresse larchive résultante avec gzip (également en GNU) si vous fournissez -z. Le suffixe conventionnel pour les fichiers gzippés est .gz, donc vous « verrez souvent des tarballs (argot pour un tar archive, ce qui implique généralement quelle a été compressée) qui se terminent par .tar.gz. Cette fin implique que tar a été exécuté, suivi de gzip, par exemple tar cf - .|gzip -9v > archive.tar.gz . Vous trouverez également des archives se terminant par .tgz, par exemple tar czf archive.tgz ..

Modifier: www.linfo.org/tar.html ma rappelé que GNU tar supportait bien plus de fonctionnalités que la simple compression avec gzip, et cela ma rappelé que les suffixes sont plus que de simples conventions. Ils ont une sémantique intégrée. Il prend également en charge bzip2 (-j pour .bz2) et lancienne compression (-Z pour .Z). Ensuite, jai regardé la page de manuel et on ma rappelé que -a mappe automatiquement votre méthode de compression souhaitée en fonction du suffixe.

Un autre nit. Comme le dit la page de manuel de Linux tar, GNU produit des pages dinformations, pas des pages de manuel, donc pour tout savoir sur GNU tar, exécutez info tar.

Commentaires

  • Le tar GNU ne gère toujours ' les compressions par lui-même, il ne fait que diriger vers / depuis gzip, bzip2, compress et autres.
  • Jai jeté un œil à la source . GNU tar gère la compression! Limplémentation tire parti de la réutilisation du code et des principes architecturaux de lespace utilisateur UNIX. " Just pipes " sous-estime la manière dont la compression est étroitement intégrée dans loutil.Le fait quil arrive à fork des programmes dassistance est une technicité. Si vous voulez défendre " juste des tuyaux, " puis citez les noms de fichiers et les numéros de ligne et laissez ' voit de quel côté la communauté prend.
  • Il me faut quelques jours avant que je puisse vérifier cette source.

Réponse

Lutilitaire tar ne compresse pas tant que vous navez pas donné dargument pour le faire [nom de fichier tar -z].

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *