TITRE : Introduction à Tar et Gzip


TAR.

GZIP.

Zcat et Gunzip.

Tar GNU.

TAR

Aidez-vous des pages de manuel et de la commande tar --help

La commande tar permet de regrouper en un seul fichier plusieurs autres fichiers et leur chemin.

Dans l'exemple : # tar cvf compacte.tar /bin/ls /bin/bash
c = compacter
v = verbeuse
f = fichier
Cela compactera(c), en affichant(v) les actions à l'écran, le fichier(f) compacte.tar, et ce fichier archive condiendra les chemin des fichiers /bin/ls et /bin/bash.
Il apparaît donc pour des raisons de sécurité (sauf si vous savez ce que vous faites ) de ne pas détarer ce fichier à partir de la racine / pour éviter d'écraser les fichiers de même nom déjà existants dans le répertoire /bin/.. !

Utiliser un répertoire perso pour le désarchivage est une bonne idée
Il est préférable de détarer dans un répertoire temporaire comme /tmp/ ou $HOME/tmp/ ou /droopy/.. !
Ensuite, vous lisez le fichier README qui vous indiquera comment procéder à l'installation et à la compilation.
Une excellente idée est de ne pas être sous compte root, mais sous un compte utilisateur !

Vérifier le contenu de l'archive avant le désarchivage est aussi une bonne idée
Vous pouvez regarder ce que contient ce fichier compacte.tar avec la commande :
# tar tvf compacte.tar qui affichera le contenu de compacte.tar
Et pour détarer faire : # tar xvf compacte.tar, x = extraction.

_La commande tar regroupe plusieurs fichiers en un seul, mais ne les compresse pas.

GZIP

Pour compresser un fichier, on utilisera la commande gzip :
# gzip compacte.tar
qui donnera le fichier compressé compacte.tar.gz

Vous avez récupé une archive, il maintenant effectuer la manoeuvre inverse :
Pour décompresser on passera l'option -d à gzip :
# gzip -d compacte.tar.gz, qui donnera le fichier compacte.tar
Et ensuite il faut utilser # tar xvf compacte.tar..... ?

Heureusement il est possible de combiner les 2 commandes !
Alors là, consultez l'aide, ces 2 commandes n'utilisent pas les mêmes options... ?
Ou/et consulter les pages de manuel : # man gzip  # man tar
_
Avec gzip :
# gzip -dc compacte.tar.gz ¦ tar xvf -
Le signe ' - ' demande de diriger le résultat vers la sortie standard :
Cela veut dire que gzip décompresse
compacte.tar.gz et envoie le résultat (compacte.tar )vers tar, pour qui '-' signifie son entrée standard (stdout).
_
Avec tar :
# tar xvzf compacte.tar.gz
l'option z appel gzip pour décomprésser compacte.tar.gz

Zcat et Gunzip

On trouve également des archives avec l'extension Z (compacte.tar.Z) ces fichiers ont été compressés avec Zcat (compresse).

Si un nom n'indique pas clairement que la compression est le résultat de Zcat ou de gzip... ?
Pour décompresser, l'utilisation de gunzip est préferable : gunzip reconnait les deux formats.

Tar GNU

Linux utilise aussi la version GNU de Tar.
Comme indiqué précédemment cette version de tar permet également la décompression de ces deux formats tar et gz et leur combinaison *.tar.gz et *.tgz.
C'est à dire :

Pour décompresser il suffit de passer l'option -z pour utiliser gzip, et -Z pour utiliser Zcat :
# tar -zxvf compacte.tar.gz
La version GNU n'implique pas l'utilisation du tiret "-" et peut sécrire :
# tar zxvf compacte.tar.gz
Cela décompresse et détare l'archive compacte.tar.gz.
Une autre possibilité bien pratique, est d'utiliser l'option -C pour indiquer un répertoire de destination, par exemple vous avez copier l'archive dans votre répertoire utilisateur ($HOME) et vous voulez la désarchiver/décompresser dans /usr/local/tmp/ :
# cd
# tar zxvf compacte.tar.gz -C /usr/local/tmp/

Attention au cas peu probable ou vous utiliseriez une version non GNU de tar, cela ne fonctionnerait pas !
Et l'utilisation du tiret "-" est obligatoire !!!