tar (informatique)

tar (informatique)
Page d'aide sur les redirections Cet article concerne le programme d'archivage. Pour les autres emplois, voir Tar.
Tar
Utilisation de tar

Extension .tar
Type MIME application/x-tar
Type de format Archive
Spécification Format ouvert

Le programme tar (de l'anglais tape archiver, littéralement « archiveur pour bande ») est un logiciel d'archivage de fichiers standard des systèmes de type UNIX. Il a été créé dans les premières version d'UNIX et standardisé par les normes POSIX.1-1988 puis POSIX.1-2001. Il existe plusieurs implémentations[1] tar, la plus couramment utilisée étant GNU tar.

Sommaire

Implémentations

Caractéristiques techniques

Un fichier d'archive créé par tar n'est pas compressé. On appelle parfois le fichier d'archivage créé un tarball.

Par défaut, l'archivage se fait directement sur le lecteur de bande de l'ordinateur. L'usage le plus courant actuellement consiste cependant à créer ou lire un fichier d'archivage.

Tar préserve les permissions, le propriétaire et le groupe des fichiers et des répertoires. Il permet également la sauvegarde des liens symboliques, des fichiers spéciaux bloc ou caractère.

Extensions et compression

Généralement, le fichier créé par tar est ensuite compressé avec un outil de compression de données. Les formats les plus courants sont :

Utilitaire de compression extension Unix extension MS-DOS
compress .tar.Z .taz
gzip .tar.gz .tgz
bzip2 .tar.bz2 .tbz
lzma .tar.lz .tlz
lzma2 .tar.xz .txz
7zip .tar.7z

Les logiciels UNIX, et particulièrement les fichiers des sources, sont fréquemment distribués sous forme de fichier d'archivage compressé.

Format du fichier

Pour l'essentiel, le format employé consiste en une concaténation du contenu des fichiers. Chaque fichier est précédé d'un en-tête des 512 octets, cette taille correspondant à la taille d'un bloc dans la version 7 du système de fichiers Unix.

Pour améliorer l'efficacité de l'écriture sur bande magnétique, les blocs de 512 octets sont groupés par 20 par défaut, produisant des blocs de 10 Ko. Le bloc final est complété par des zéros binaires.

Format de l'en-tête

Le format original de l'en-tête des fichiers dans tar est le suivant :

Position Taille Champ
0 100 Nom du fichier
100 8 Permissions
108 8 Propriétaire (id)
116 8 Groupe (id)
124 12 Taille en octets
136 12 Dernière modification en temps Unix
148 8 Somme de contrôle de l'en-tête
156 1 Type de fichier
157 100 Nom du fichier lié
Type de fichier
Valeur Signification
'0' Fichier normal
(ASCII NUL) Fichier normal (usage obsolète)
'1' Lien matériel
'2' Lien symbolique
'3' Fichier spécial caracatère
'4' Fichier spécial bloc
'5' Répertoire
'6' Tube nommé
'7' Fichier contigu.

Les noms sont encodés en ASCII et les valeurs sont en octal avec des chiffres encodés en ASCII pour assurer la portabilité. Les valeurs sont ponctuées par un NUL ou un espace. Comme 11 caractères sont utilisables pour spécifier la taille du fichier, ceci créée une limitation à 811 octets, soit 8 Go par fichier. Certaines versions, comme GNU tar, permettent un encodage de la taille sous format binaire pour surmonter cette limitation.

Format UStar

Les versions actuelles de tar emploient un format connu sous le nom de UStar défini par la norme POSIX (IEEE P1003.1).

UStar permet d'utiliser des noms de fichiers plus long et enregistre des attributs supplémentaires.

Position Taille Champ
0 257 identiques au format original
257 6 ustar indique le type UStar
263 2 Version (00)
265 32 Propriétaire (nom)
297 32 Groupe (nom)
329 8 Fichier spécial (nombre majeur)
337 8 Fichier spécial (nombre mineur)
345 155 Préfixe du fichier

Commandes courantes

Voici les commandes courantes de compression et décompression des archives en fonction de leur extension.

  • Afficher liste des fichiers :
 tar -tf archive.tar
  • Extraction (éventuellement pour un fichier ou un répertoire spécifique) :
 tar -xvf archive.tar [fichier1... ]
  • Décompression + extraction (spécifique à certaines implémentations, comme GNU tar ou bsdtar) :
 tar -xzvf archive.tar.gz
 tar -xjvf archive.tar.bz2
 tar -xYvf archive.tar.lzma

Plus généralement, on peut arriver au même résultat avec :

 zcat archive.tar.gz  | tar -xv
 bzcat archive.tar.bz2 | tar -xv

Remarque : on utilise parfois gzcat ou gzip -cd.

  • Archivage :
 tar -cvf fichier.tar MonRepertoire1 [MonRepertoire2... ]
  • Compression et archivage :
 tar -czvf archive.tar.gz MonRepertoire
 tar -cjvf archive.tar.bz2 MonRepertoire

ou encore :

 tar -cv MonRepertoire | gzip > archive.tar.gz
 tar -cv MonRepertoire | bzip2 > archive.tar.bz2

Ceci créera une archive compressée dans le répertoire courant (donc un seul fichier) contenant l'ensemble des fichiers du répertoire MonRepertoire et de ses sous-répertoires.

  • copie d'une partie de l'arborescence vers un autre endroit :
 tar -c . | ( cd /Repertoire/Destination; tar -xv )

Limitations de tar

Un tarbomb est un fichier tar contenant une grande quantité de fichiers à la racine de l'archive. Lorsqu'elle est désarchivée, les fichiers d'un tarbomb noient le contenu du répertoire de travail, voire écrasent les fichiers de l'utilisateur qui portent le même nom que ceux de l'archive. Dans le meilleur des cas, l'utilisateur doit ensuite sélectionner un par un les fichiers apparus pour les recopier dans un nouveau répertoire, ce tri pouvant se révéler un travail fastidieux si les fichiers initiaux et les nouveaux sont très mélangés.

L'usage veut donc que les fichiers soient contenus dans un répertoire qui sera archivé, plutôt que de les archiver directement. On peut également extraire les fichiers dans un sous-répertoire dédié ou examiner au préalable le contenu de l'archive avec l'option t.

Contrairement à GNU tar, le tar original permettait de créer et d'extraire des fichiers avec un chemin absolu, ce qui peut s'avérer dangereux. Il est cependant encore possible de faire référence à des répertoires parents de façon relative (../).

Tar ne dispose pas d'un index centralisé. Pour extraire un seul fichier de l'archive, il faut donc la parcourir entièrement.

Contrairement à d'autres logiciels comme rsync, certaines versions de tar ne copient pas les xattrs ou les ACL.

Notes et références

  1. (en) Banc d'essai réalisée sur trois d'entre elles, bsdtar, GNU tar et star - Jan Psota, octobre 2007.
  2. (en) Page man de bsdtar - implémentation distribuée avec la librairie libarchive.
  3. (en) Star - Solid, POSIX compliant tar implementation.
  4. (en) Oracle tar.
  5. (en) Exemple publié en mars 2008.
  6. (en) Solaris tar, exemple publiée en mars 2005.
  7. (en) Une implémentation maintenue par Apple.
  8. (en) pdtar, une implémentation du programme tar réalisée en 1985 par John Gilmore.
  9. (en) SharpZipLib

Voir aussi

Articles connexes

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article tar (informatique) de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Tar (informatique) —  Cet article concerne le programme d archivage. Pour les autres emplois, voir Tar. Tar ou Tarball Extension de fichier .tar, .tar.Z, .tar.gz, .tgz, .tar.bz2 Type MIME …   Wikipédia en Français

  • tar — ● cde. np. ►UNIX tar = goudron en anglais. archiveur standard du monde Unix. Apparemment, c est un acronyme pour Tape Archive . Par extension, un fichier contenant une telle archive. Ce format n est pas compressé, c est pourquoi on rencontre… …   Dictionnaire d'informatique francophone

  • Tar (georgien) — Tar (géorgien) ტარ Tar Graphies Graphie {{{graphie}}} Capitale {{{capitale}}} Bas de casse {{{bas de casse}}} Isolée {{{isolée}}} …   Wikipédia en Français

  • Tar (géorgien) — Pour les articles homonymes, voir Tar. ტარ Tar Utilisation Alphabets Géorgien Ordre 19e …   Wikipédia en Français

  • Archivage informatique — Archive (informatique) Pour les articles homonymes, voir Archive. En informatique, une archive est un fichier dans lequel se trouve tout le contenu d un dossier (fichiers, arborescence et droits d accès). Les archives sont généralement des… …   Wikipédia en Français

  • Archive (Informatique) — Pour les articles homonymes, voir Archive. En informatique, une archive est un fichier dans lequel se trouve tout le contenu d un dossier (fichiers, arborescence et droits d accès). Les archives sont généralement des fichiers portant l extension …   Wikipédia en Français

  • Fichier Informatique — En informatique, un fichier est un lot d informations portant un nom et conservé dans une mémoire. Les fichiers sont la plupart du temps conservés sur des mémoires de masse tels que les disques durs. Les mémoires de masse permettent de conserver… …   Wikipédia en Français

  • Fichier informatique — En informatique, un fichier est un lot d informations portant un nom et conservé dans une mémoire. Les fichiers sont la plupart du temps conservés sur des mémoires de masse tels que les disques durs. Les mémoires de masse permettent de conserver… …   Wikipédia en Français

  • Extension informatique — Extension de nom de fichier Pour les articles homonymes, voir Extension. En informatique, une extension de nom de fichier (ou simplement extension de fichier, voire extension) est un suffixe donné au nom d un fichier pour identifier son format.… …   Wikipédia en Français

  • Compression informatique — Compression de données La compression de données est l opération informatique qui consiste à transformer une suite de bits A en une suite de bits B plus courte, et qui contient les mêmes informations, en utilisant un algorithme particulier. La… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”