5.5. tar : Tape ARchiver (archiveur sur bandes)

Bien que nous ayons déjà vu une utilisation de tar dans le chapitre Installation d'un logiciel libre, nous n'avons pas expliqué son fonctionnement. C'est maintenant ce que nous nous proposons de faire. De même que find, tar est un utilitaire Unix de longue date, et sa syntaxe est un peu spéciale :
tar [options] [fichiers...]
Voici maintenant une liste d'options. Notez que toutes celles-ci ont une option longue équivalente, mais vous devrez vous référer à la page de manuel pour cela car elles ne sont pas listées ici. Et bien sûr, il y a encore bien d'autres options non listées ici:-)

Note

le tiret initial (-) des options courtes est maintenant désuet pour la commande tar, sauf après une option longue.

Il y a en fait beaucoup, beaucoup d'autres options. Référez-vous à la page de manuel de man 1 tar pour en obtenir une liste complète (entre autres l'option d, par exemple). Maintenant, passons à la pratique ! Supposons que vous vouliez créer une archive de toutes les images dans le répertoire /shared/images, compressée avec bzip2, de nom images.tar.bz2 et située dans votre répertoire personnel. Vous taperez alors :

 #
 # Note: vous devez être dans le répertoire 
 #   contenant les fichiers de l'archive!
 #
$ cd /shared
$ tar cjf ~/images.tar.bz2 images/

Comme vous le constatez, nous avons utilisé trois options ici : c a indiqué à tar de créer une archive ; j lui énonce que nous voulons qu'elle soit compressée avec bzip2, et f ~/images.tar.bz2 lui signale que l'archive devait être créée dans notre répertoire personnel, avec le nom images.tar.bz2. Maintenant, il faut peut-être vérifier si l'archive est valide. Ceci se fera simplement en affichant la liste de ses fichiers :

 #
 # Retour à notre répertoire personnel
 #
$ cd
$ tar tjvf images.tar.bz2

Ici, nous avons demandé à tar d'afficher la liste (t) des fichiers de l'archive images.tar.bz2 (f images.tar.bz2), en ayant averti que cette archive était compressée avec bzip2 (j), et que nous voulions un format d'affichage long (v). Maintenant, supposons que vous ayez effacé le répertoire des images. Heureusement, votre archive est intacte ! Vous voulez l'extraire de sa place originelle dans /shared. Mais comme vous ne voulez pas casser votre commande find pour trouver les nouvelles images, vous devez préserver les attributs de tous les fichiers :

 #
 # Rendez-vous dans le répertoire où vous voulez 
 #   extraire
 #
$ cd /shared
$ tar jxpf ~/images.tar.bz2

Et voilà le travail!

Maintenant, supposons que vous vouliez seulement extraire le répertoire images/cars de l'archive. Vous pouvez alors taper ceci :

$ tar jxf ~/images.tar.bz2 images/cars

Au cas où cela vous inquiéterait, il n'y a pas de quoi ! Si vous essayez d'archiver des fichiers spéciaux, tar les prendra tels qu'ils sont, des fichiers spéciaux, et n'ira pas chercher leur contenu. Donc oui, vous pouvez mettre sans risque /dev/mem dans une archive :-) La gestion des liens, d'autre part, s'accomplit aussi correctement ; donc là non plus, pas d'inquiétude à avoir ! Pour les liens symboliques, regardez également l'option h dans la page de manuel.


Tux sur Étoile de MandrakeSoft Linux est une marque déposée de Linus Torvalds. Toutes les autres marques et copyrights sont la propriété de leurs auteurs respectifs.
Sauf mention contraire, tout le contenu de ces pages et toutes les images sont Copyright MandrakeSoft S.A. et MandrakeSoft Inc. 2001.
http://www.mandrakelinux.com/