web-dev-qa-db-fra.com

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

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

41
TheDoctor

Tar est un outil d'archivage (Tape ARchive), il ne collecte que les fichiers et leurs métadonnées ensemble et produit un seul 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 l'archive automatiquement pour vous. Consultez la page de manuel tar pour plus de détails.

53
0xAF

tar produit des archives; la compression est une fonctionnalité distincte. Cependanttar seul peut réduire l'utilisation de l'espace lorsqu'il est utilisé sur un grand nombre de petits fichiers plus petits que la taille du cluster du système de fichiers. Si un système de fichiers utilise des clusters de 1 Ko, même un fichier qui contient un seul octet consommera 1 Ko (plus un inode). Une archive tar n'a pas cette surcharge.

BTW, un fichier ISO n'est pas vraiment "un fichier pour contenir des fichiers" - c'est en fait une image d'un système de fichiers entier (celui conçu à l'origine pour être utilisé sur des CD) et donc sa structure est considérablement plus complexe.

18
Michael Borgwardt

La commande tar UNIX d'origine n'a pas compressé les archives. Comme mentionné dans un commentaire, le tar Solaris ne se comprime pas. HP-UX, AIX et 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 d'autres systèmes UNIX.) Par défaut, il ne se comprime pas; cependant, il compresse l'archive résultante avec gzip (également par GNU) si vous fournissez -z. Le suffixe conventionnel pour les fichiers compressés est .gz, vous verrez donc souvent des tarballs (argot pour une archive tar, ce qui implique généralement qu'elle 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 ..

Edit: www.linfo.org/tar.html m'a rappelé que GNU tar prend en charge beaucoup plus de fonctionnalités que la simple compression avec gzip, et cela m'a 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 ancienne compresse (-Z pour .Z). Ensuite, j'ai regardé la page de manuel et on m'a rappelé que -a mappe automatiquement la méthode de compression souhaitée en fonction du suffixe.

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

3
tbc0

l'utilitaire tar ne se comprime pas tant que vous n'avez pas donné d'argument pour le faire [nom du fichier tar -z].

1
A J