Tar était une commande très utilisée sous unix avant l'apparation de logiciels de sauvegarde. Pour la petite histoire tar signifie Tape Archive. L'avantage de la commande tar est qu'elle préserve les propriétaires et permissions du système de fichiers et qu'elle peut être couplée très facilement avec des outils de compression.

1. Pour créer une archive

- Archive sans compression :
tar -cvf [nom du fichier].tar [nom du répertoire à archiver]

Exemple :
$tar -cvf doc.tar ./doc/
/doc
./doc/essai.txt
./doc/essai1.txt
./doc/essai2.txt
./doc/essai3.txt


- Archive avec compression gzip :
tar -czf [nom du fichier].tgz [nom du répertoire à archiver]

Exemple :
$tar -czf doc2.tgz ./doc

- Archive avec compression bzip2 :
tar -cjf [nom du fichier].tbz2 [nom du répertoire à archiver]

2. Pour lire/contrôler une archive

- lire une archive simple
$tar -tvf [nom du fichier].tar

Exemple :
$tar -tvf doc.tar
drwxr-xr-x tagger/tagger     0 2006-08-26 14:34:20 ./doc/
-rw-r--r-- tagger/tagger     0 2006-08-26 14:33:54 ./doc/essai.txt
-rw-r--r-- tagger/tagger     0 2006-08-26 14:34:06 ./doc/essai1.txt
-rw-r--r-- tagger/tagger     0 2006-08-26 14:34:12 ./doc/essai2.txt
-rw-r--r-- tagger/tagger     0 2006-08-26 14:34:20 ./doc/essai3.txt

-lire une archive compressée avec gzip :
$tar -tzf [nom du fichier].tgz

-lire une archive compressée avec bzip2 :
$tar -tjf [nom du fichier].tbz2

3. Pour installer/désarchiver une archive

- Désarchiver une archive sans compression :
tar -xvf [nom du fichier].tar [destination]

Exemple :
Ici on désarchive le contenu de doc.tar dans le répertoire exemple
$tar -xvf doc.tar ./exemple
/doc
./doc/essai.txt
./doc/essai1.txt
./doc/essai2.txt
./doc/essai3.txt


- Désarchiver une archive avec compression gzip :
tar -xzf [nom du fichier].tgz [destination]

Exemple :
$tar -czf doc2.tgz ./exmple

- Désarchiver une archive avec compression bzip2 :
tar -xjf [nom du fichier].tbz2 [destination]

4. Archiver / désarchiver à la volée (utile lors d'un file system full)

4.1 Ici on se place dans le répertoire source

tar cvf - [nom du répertoire source à archiver] | (cd [destination] ; tar xvf - .)

Exemple :
$tar cvf - ./doc | (cd /films ; tar xvf - .)

Le répertoire ./doc a été archivé puis nous allons dans le répertoire de destination /films et nous désarchivons

4.2 Ici on se place dans le répertoire de destination

$tar cvf - -C [source] [nom du répertoire à archiver] |  tar xvf -

Exemple :
$cd /films
$tar cvf - -C /home/toto doc | tar xvf -
Dans un premier temps nous allons dans le répertoire /films
Enuiste, avec la commande tar, nous allons dans le répertoire /home/toto/ avec l'option -C puis nous archivons le répertoire doc, que nous désarchivons ensuite dans /films.

Enfin il existe plusieurs options pour la commande tar et je vous invite à en lire le man.