Archives tar
La commande tar permet de créer une archive à partir d'un ou plusieurs fichiers. Si le fichier est un répertoire, il sera archivé avec sa sous-arborescence.
Syntaxe
Création d'une archive :
tar -c [-zv] -f archive fichiers_a_archiver ...
Vérification d'une archive :
tar -t [-zv] -f archive [fichiers_a_verifier ...]
Extraction d'une archive :
tar -x [-zv] -f archive [fichiers_a_extraire ...]
Principales options :
-c : Création d'une archive
-t : Vérification d'une archive
-x : Extraction d'une archive
-f archive.tar : Nom de l'archive à créer, vérifier ou extraire
-f - : Dans le cas d'une création, le contenu de l'archive est envoyé sur la sortie standard. En extraction et vérification, le contenu de l'archive est attendu sur l'entrée standard
-v : Mode verbeux
-z : Sous Linux uniquement : permet de gérer en plus la compression avec gzip
-j : Compression avec bzip2
Exemples
Archivage et compression du dossier dossier_a_sauvegarder. La commande tar envoi le contenu de l'archive à la commande gzip via un pipe et qui compresse l'archive dans un fichier dossier_a_sauvegarder.tar.gz
$ ls -R dossier_a_sauvegarder
dossier_a_sauvegarder:
aZerty Bonjour Coucou help history last monscript pays2011.txt.1 piwik1 piwik2 result ronan ronan2 ronan3 search test
$ tar -cvf - dossier_a_sauvegarder | gzip -c > dossier_a_sauvegarder.tar.gz
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$ ls -l dossier_a_sauvegarder.tar.gz
-rw-r--r-- 1 root root 369562 25 mai 17:30 dossier_a_sauvegarder.tar.gz
$
Décompression et extraction. La commande gunzip décompresse le fichier et envoie le résultat à la commande tar qui extrait tout le contenu de l'archive.
$ gunzip -c dossier_a_sauvegarder.tar.gz | tar -xvf -
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$
Lister le contenu d'une archive
$ gunzip -c dossier_a_sauvegarder.tar.gz | tar -tf -
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$
Archivage et compression en utilisant l'option -z
$ tar -cvzf monArchive.tar.gz dossier_a_sauvegarder
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$
Idem pour lister le contenu de l'archive. En fait, l'option -z n'est pas obligatoire. Que l'archive soit compressée ou pas les options -tf suffisent.
$ tar -tf monArchive.tar.gz
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$
Ajouter un fichier à une archive existante en 3 étapes.
1 - Décompression (un fichier ne peut être ajouté à une archive compressée
$ gunzip monArchive.tar.gz
2 - Ajout du fichier xam à l'archive
$ tar -rf monArchive.tar xam
3 - Compression de l'archive
$ gzip monArchive.tar
Vérifier les différences entre le contenu de l'archive tar et les fichiers sources. Mettre à jour si nécessaire.
1 - Décompression de l'archive
$ gunzip monArchive.tar.gz
2 - Comparaison de l'archive avec les fichiers sources et affichage des différences existantes
$ tar -df monArchive.tar
dossier_a_sauvegarder/aZerty: La date de modification est différente.
dossier_a_sauvegarder/aZerty: La taille est différente.
$
3 - Suppresion du fichier ou des fichiers ayant des différences
$ tar --delete -f monArchive.tar dossier_a_sauvegarder/aZerty
4 - Mise à jour des fichiers en cas de différences trouvées.
$ tar -uf monArchive.tar dossier_a_sauvegarder
5 - Compression de l'archive
$ gzip monArchive.tar
Ajouter un commentaire