Documentation non-officielle des utilitaires d'archivage et
de compression
tar, gzip et gunzip
Auteur : Fred Pesch peschans@ie2.u-psud.fr
Sommaire :
1. Introduction
2. Utilisation de gzip / gunzip
3. Utilisation de tar
4. Exemple pratique
1. Introduction
La logitheque UNIX est surement la plus fournie de tous les
systemes confondus, surtout en ce qui concerne les freewares. Le gros probleme
provient surtout de la difficulte d'installer les logiciels en general
fournis sous forme de fichiers tares (mais loin d'etre fous) et zipes avec
les outils tar, gzip et son copain gunzip. Ce petit guide va, je l'espere,
vous aider a comprendre a quoi ils servent et comment ils s'utilisent.
Vous pourrez alors tarer comme un tare et mitrailler a mort avec gunzip
(ca fait un peu nom d'arme militaire, non ?). Bien sur, vous ne trouverez
pas ici une reference avec le detail de tous les parametres des commandes,
mais vous en
connaitrez les principales. N'oubliez pas que toutes les commandes
UNIX sont "case sensitive" (les majuscules et minuscules sont interpretees
differemment, ainsi, les fichier tar et TaR sont diferents et peuvent coexister)
mais que les commandes sont en general tapees en minuscules (donc, faites
gaffe au Caps Lock).
2. Utilisation de gzip / gunzip
L'utilitaire gzip vous permet de reduire la
taille de tout type de fichier en utilisant le celebre algorithme de Lempel-Ziv
(LZ77 pour les connaisseurs). Ce n'est pas l'algorithme de compression
le plus efficace mais il a l'avantage d'etre performant pour la plupart
des types de fichiers (images, textes, sons, etc.) (pour les
connaisseurs, encore, il est repute plus performant que LZW et toutes
les variantes d'Huffmann). Il a une autre
propriete remarquable : en compressant un fichier deja compresse, la
taille diminue et ainsi de suite jusqu'a atteindre 0 octet ! MAIS NON !
C'etait une blague pour voir si vous saviez de quoi on parle ici :-).
Pour compresser un fichier, le plus simple
est de taper tout simplement la commande :
gzip nomdufichier
et gzip transformera automatiquement le fichier nomdufichier en nomdufichier.gz
(sur UNIX) qui sera sa version compressee. Bien sur, vous venez d'ecraser
l'ancien fichier, mais pour le recuperer, tapez donc :
gunzip nomdufichier.gz
et vous retrouverez votre nomdufichier (tout court). Il n'y a pas plus
simple ! (ah si ! J'ai trouve plus simple, configurer windows95 : PleaseRunInDosMode=ON
)
Pour ne pas ecraser le fichier que l'on veut
comprimer, on utilisera l'option -c qui redirige la creation du fichier
compresse sur la sortie standard, il faut donc rediriger cette sortie pour
que ce soit utile. Par exemple, supposons que nous voulons compresser le
fichier izard.grand mais garder ce fichier et mettre la version compressee
dans le fichier izard.petit.gz (rajoutez toujours le suffixe, comme ca,
on sait de quoi on parle ), on utilisera :
gzip -c izard.grand > izard.petit.gz
Pour recuperer une version decompressee de izar.petit.gz, on pourra
faire :
gunzip izard.petit.gz
ou
gunzip -c izard.petit.gz > izard.petit
En effet, gunzip marche pratiquement comme gzip (en fait, c'est juste
un gzip -d qui est l'option de decompression).
Pour compresser plusieur fichiers simultanement, le mieux est de passer
par l'utilitaire tar (voir plus loin) car gzip -c accepte bien plusieurs
fichiers en entrees mais le resultat d'un gunzip etant un fichier unique,
on
ne peut pas se contenter de ces outils pour faire des archives.
L'option -l donne des informations sur le (ou les) fichier(s) zipe(s)
passe en argument
L'option -t teste l'integrite de l'archive
Pour terminer, sachez que l'option -h vous affichera un resume des options
et n'hesitez pas a faire un man gzip, c'est bien explique.
3. Utilisation de tar
l'utilitaire tar est beaucoup plus puissant et beaucoup plus riche
que gzip/gunzip mais il ne sert pas du tout a la meme chose (tant mieux
!). Il a aussi la facheuse tendance a etre plus complique que les utilitaires
non
interactifs que l'on trouve par centaines sur unix, avec une syntaxe
un peu speciale et un man incomprehensible. Mais les commandes de bases
sont assez simples, ne vous inquietez pas ! le mot tar est l'abreviation
de Tape ARchiver, createur d'archives pour bandes (ca s'est de la traduction
!).
Nous n'allons pas detailler les douze milles fonctions que peut remplir
cet archiveur mais trois fonctions essentielles :
a. creer une archive
b. desarchiver un fichier tare
c. afficher le contenu d'une archive
a. creer une archive
En general, pour creer une archive, on donne soit un ensemble de fichiers,
soit un ou des repertoires ou tous les fichiers contenus (et tous les sous-repertoires
recursivement) feront aussi parti de l'archive. La
commande de base est :
tar cvf fichier.tar fichier1
[fichier2 fichier3 ... fichierN]
repertoire1 [repertoire2 ... repertoireN]
Le c indique que l'on veut creer (create) l'archive, le v indique de
rajouter le proprietaire et les droits d'acces des fichiers (attention
! c'est pratique mais ca peut etre problematique sauf si vous avez un acces
root et alors, pas de probleme). Le f enfin indique qu'il faut preciser
la sortie de l'archive (sinon, tar utilise un peripherique d'archivage
par defaut qui peut etre une disquette !).
Supposons que vous vouliez archiver (pas de compression, attention !)
les fichiers toto1, toto2, ainsi que le repertoire velo et tous ses sous-repertoires
et fichiers et tout dans le fichier d'archive steaktar.tar
(sic!), vous saisierez :
tar cvf steacktar.tar toto1
toto2 velo
Un point c'est tout ! Vous aurez un nouveau fichier steacktar.tar pret
pour le zipage et le transbordage, le dezipage et le detarage... Mais avant
de detarer, signalons que tar a enregistrer les fichier avec leurs paths
relatifs, c'est a dire que si j'avais le fichier tricycle dans le sous-repertoire
enfant de velo, il aurait ete enregistre comme velo/enfant/tricycle. C'est
fort pratique mais on veut parfois enregistrer les fichiers avec leur path
absolu il suffit d'indiquer les noms en partant de la racine, c'est un
peu fastidieux mais en general on archive un seul
repertoire.
b. detarage
Pour detarer un fichier d'archive, on utilise la
commande :
tar xvf nomarchive.tar
Les fichiers et les repertoires tares sont crees (attention, cela peut
effacer les anciens...) et vous pouvez maintenant effacer votre archive
(avec rm, forcement !). Un petit exemple, quand meme : si vous avez archive
un gros programme dans OlivierEstUne.tar , vous ferez :
tar xvf OlivierEstUne.tar
et hop !
c. Affichage
La derniere commande qui nous sera utile est l'affichage du contenu
d'une archive, vous ferez alors :
tar tvf nomarchive.tar
ou
tar tvf nomarchive.tar
| less (ou more)
La deuxieme commande permet d'afficher les informations pages par pages.
4. Exemple Pratique
Supposons que vous avez recupere le fichier doom3.tar.gz
et que vous etes tres impatient de jouer, mais vous ne savez pas comment
faire... Premiere chose, le suffixe .gz vous informe que le fichier est
zipe, vous devez donc dezipe le fichier avec un simple :
gunzip doom3.tar.gz
Vous obtiendrez le fichier doom3.tar et vous n'aurez plus qu'a le detarer
avec un simple :
tar xvf doom3.tar
Et voila, vous avez atteint le niveau de connaissance pour installer
la plupart des logiciels UNIX disponibles sur internet ou sur CDROM, sauf
ceux qui demandent une recompilation mais c'est une autre histoire...
NOTE COMPLEMENTAIRE :
Si vous voules faire transiter vos fichier .tar.gz par le dos(il est
remonte dans mon estime avec les dos extenders, celui-la), renommez les
en 8lettres.tgz, ca vous evitera les mauvaises surprises genre:
"c'est quoi ~Em~-1.gz ?"
(C) Fred Pesch, 1995
tout droit de repollution reserve