Commandes Linux : tar

TAR

Installé avec le paquet tar
Voir aussi : xz, unxz, gzip, gunzip, bzip2, bunzip2, zip, unzip et cpio
 

Rmq : La taille d’une archive non compressée tar est la somme de la taille des fichiers et dossiers contenus dans l’archive.

1. Archives non compressées
2. Archivage distant via SSH
3. Archives compressées GZIP
4. Archives compressées BZIP2
5. Archives compressées XZ
 

Afficher la version de tar

tar --version

ou

apt-cache policy tar

 

Options utiles

-v : mode verbeux
-c : crée une nouvelle archive
-x : extrait les fichiers d’une archive
-p : préserve les permissions d’origine (par défaut si exécuté par root)
-t : affiche la liste des fichiers contenus dans une archive
-f : spécifie le nom de l’archive, à la place de la sortie standard (-f – est redondant), cette option doit être positionnée en dernier
-C : exécute la commande à partir du répertoire spécifié
-z (--gzip) : compression au format gzip
-j (--bzip2) : compression au format bzip2
-J (--xz) : compression au format xz
-P : n’enlève pas les « / » des noms de fichiers
-r : (mode append) sauvegarde des fichiers à la fin d’une archive
-d : cherche les différences entre les fichiers indiqués et ceux contenus dans le fichier archive
-h : suit les liens symboliques ; sauvegarde et restaure les fichiers pointés
-m : ne restaure pas la date de modification du fichier extrait
-A : ajoute bout à bout plusieurs fichiers tar à une archive
-g : gère les sauvegardes incrémentielles dans le nouveau format GNU
--files-from (-T) : obtient la liste des fichiers à extraire ou à créer depuis un fichier référence
--exclude-from (-X) : obtient la liste des fichiers ou de motifs à exclure depuis un fichier référence
--exclude-tag-all : exclut du traitement les dossiers contenant un fichier spécifique
--delete : (mode suppression) supprime du contenu de l’archive (non exploitable avec les lecteurs de bandes !)
--wildcards : permet de filtrer une extraction à partir d’un pattern
--keep-old-files (-k) : ne remplace pas les fichiers existants lors de l’extraction, les traite comme des erreurs
--keep-newer-files : ne remplace pas les fichiers existants si leur version est plus récente que leur copie dans l’archive

 

Archives non compressées

 

Afficher le contenu d’une archive

tar -tf archive.tar

L’arborescence de l’archive sera affichée.

tar -tvf archive.tar

Le mode verbeux affiche également les informations relatives aux fichiers/dossiers (droits, propriétaire, date de modification, etc.).
ex :

# tar -tvf archive.tar
drwxr-xr-x root/root         0 2016-10-11 13:11 source/
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file1.txt
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file2.txt
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file3.txt

 

Créer une archive non compressée

A partir d’une liste de fichiers :

tar -cvf archive.tar fichiers

Ici les fichiers se trouvent dans le répertoire courant.

# tar -cvf archive.tar file1.txt file2.txt file3.txt
file1.txt
file2.txt
file3.txt
# tar -tf archive.tar
file1.txt
file2.txt
file3.txt

A partir d’une liste de dossiers :

tar -cvf archive.tar dossiers
# tar -cvf archive.tar source/
source/
source/file1.txt
source/file2.txt
source/file3.txt
# tar -tf archive.tar
source/
source/file1.txt
source/file2.txt
source/file3.txt

Ici un chemin relatif est fourni, l’archive générée comprend le dossier et les fichiers.

# tar -cvf archive.tar /home/adminsys/source/
tar: Suppression de « / » au début des noms des membres
/home/adminsys/source/
/home/adminsys/source/file1.txt
/home/adminsys/source/file2.txt
/home/adminsys/source/file3.txt
# tar -tf archive.tar
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt

Par défaut, même si un chemin absolu est précisé, la racine est retirée du nom complet des fichiers de l’archive.

# tar -cPvf archive.tar /home/adminsys/source/
/home/adminsys/source/
/home/adminsys/source/file1.txt
/home/adminsys/source/file2.txt
/home/adminsys/source/file3.txt
# tar -tf archive.tar
tar: Suppression de « / » au début des noms des membres
/home/adminsys/source/
/home/adminsys/source/file1.txt
/home/adminsys/source/file2.txt
/home/adminsys/source/file3.txt

Ici un chemin absolu est fourni, l’archive générée comprend tous les dossiers jusqu’aux fichiers, avec la racine qui est préservée avec l’option -P.

# tar -cvf archive.tar -C /home/adminsys/ source1/ source2/
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt
# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt

Ci-dessus, par l’option -C, on précise à partir de quel dossier on procédera à l’archivage (par défaut il s’agit du répertoire courant). Les dossiers à archiver qui suivent devront donc se trouver dans ce dossier. De plus, l’archive générée se trouvera dans ce dossier.
Autre exemple avec l’option -C : sauvegarde et extraction à partir de la racine

# tar -cvf /home/adminsys/archive.tar -C / mnt/ tmp/
mnt/
mnt/file1.txt
tmp/
tmp/file2.txt
# tar -xvf /home/adminsys/archive.tar -C /
mnt/
mnt/file1.txt
tmp/
tmp/file2.txt

Ci-dessus on se place à la racine pour sauvegarder les dossier mnt/ et tmp/ et on spécifie le chemin absolu de l’archive à créer pour que cette dernière ne soit pas créée à la racine.

 

Extraire une archive non compressée

tar -xvf archive.tar

Le contenu de l’archive est extrait dans le répertoire courant.
Si l’archive contient une arborescence de dossiers, ceux-ci seront recréés à partir du répertoire courant.
Si des fichiers/dossiers absents de l’archive existent, ils seront préservés lors de l’extraction.
Si l’archive est détarée dans le répertoire courant, alors elle sera supprimée après extraction. Pour garder l’archive utilisée, il faut la détarer dans un autre répertoire avec l’option -C

# tar -tf archive.tar
source/file1.txt
source/file2.txt
source/file3.txt
# tar -xvf archive.tar
source/file1.txt
source/file2.txt
source/file3.txt

Pour extraire une arborescence débutant à la racine, il est alors nécessaire de se placer à la racine, comme cette dernière a été supprimée lors de la création de l’archive.

# tar -tf archive.tar
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt
# cd /
# tar -xvf /home/adminsys/archive.tar
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt
# cd /home/adminsys/

Equivaut à :

# tar -tf archive.tar
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt
# (cd / ; tar -xvf /home/adminsys/archive.tar)
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt

Equivaut aussi à :

# tar -tf archive.tar
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt
# tar xvf archive.tar -C /
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt
tar -xPvf archive.tar

Avec l’option -P la racine est préservée, l’archive peut alors être extraite depuis son emplacement, son contenu étant restauré en partant de la racine.

# tar -tf archive.tar
tar: Suppression de « / » au début des noms des membres
/home/adminsys/source/
/home/adminsys/source/file1.txt
/home/adminsys/source/file2.txt
/home/adminsys/source/file3.txt
# tar -xPvf archive.tar
/home/adminsys/source/
/home/adminsys/source/file1.txt
/home/adminsys/source/file2.txt
/home/adminsys/source/file3.txt
tar -xvf archive.tar -C target/

Il est ainsi possible de préciser le dossier d’extraction de l’archive.
Par exemple, on peut préciser la racine « / » ou tout autre dossier.
ex 1 : Extraction dans un dossier lambda

# tar -tf archive.tar
source/
source/file1.txt
source/file2.txt
source/file3.txt
# tar -xvf archive.tar -C temp/
source/
source/file1.txt
source/file2.txt
source/file3.txt
# tree temp/
temp/
└── source
    ├── file1.txt
    ├── file2.txt
    └── file3.txt

1 directory, 3 files

ex 2 : Extraction à la racine

# tar -tf archive.tar
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt
# tar xvf archive.tar -C /
home/adminsys/source/
home/adminsys/source/file1.txt
home/adminsys/source/file2.txt
home/adminsys/source/file3.txt

 

Ajouter des fichiers ou dossiers à une archive non compressée existante

tar -rf archive.tar fichiers/dossiers

ex :

# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
# tar -rf archive.tar source2/ source3/
# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt
source3/
source3/file7.txt
source3/file8.txt
source3/file9.txt

 

Ajouter le contenu d’une archive à une archive existante

tar -Af base.tar complement.tar

ex :

# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
# tar -Af archive.tar source2.tar
# tar -Af archive.tar source3.tar
# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt
source3/
source3/file7.txt
source3/file8.txt
source3/file9.txt

Le contenu de source2.tar et source3.tar a été ajouté à l’archive de base archive.tar.

 

Supprimer des fichiers ou dossiers d’une archive non compressée existante

tar --delete -f archive.tar fichiers/dossiers

ex :

# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt
source3/
source3/file7.txt
source3/file8.txt
source3/file9.txt
# tar --delete -f archive.tar source2/file6.txt source3/
# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt

 

Restaurer uniquement certains fichiers d’une archive non compressée

tar -xvf archive.tar fichiers/dossiers

ex :

# tree source?/
source1/
source2/
source3/

0 directories, 0 files
# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt
source3/
source3/file7.txt
source3/file8.txt
source3/file9.txt
# tar -xvf archive.tar source1/ source2/file4.txt source3/file9.txt
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/file4.txt
source3/file9.txt
# tree source?/
source1/
├── file1.txt
├── file2.txt
└── file3.txt
source2/
└── file4.txt
source3/
└── file9.txt

0 directories, 5 files
Spécifier un fichier référence en entrée :
tar -xvf archive.tar --files-from liste

On peut ainsi spécifier un fichier en entrée listant les fichiers ou dossiers à restaurer.
ex :

# tree source1/ source2/
source1/
source2/

0 directories, 0 files
# tar -tf archive.tar
source1/
source1/file2.txt
source1/file1.txt
source1/file3.txt
source2/
source2/file6.txt
source2/file5.txt
source2/file4.txt
# cat liste.txt
source1/file2.txt
source2/file5.txt
# tar -xvf archive.tar --files-from liste.txt
source1/file2.txt
source2/file5.txt
# tree source1/ source2/
source1/
└── file2.txt
source2/
└── file5.txt

0 directories, 2 files
Ne pas écraser les fichiers existants
tar -xvf archive.tar --keep-old-files
Ne pas écraser les fichiers existants plus récents ou de même date
tar -xvf archive.tar --keep-newer-files

 

Utilisation des wildcards lors de l’extraction

tar -xvf archive.tar --wildcards 'pattern'

Les wildcards peuvent être listées telles que '*.png' '*.jpg' par exemple.
Nous pouvons spécifier le dossier d’extraction :

tar -xvf archive.tar -C target --wildcards 'pattern'

L’exemple ci-dessous ne restaure que les fichier PNG contenus dans l’archive :

# tree source1/ source2/
source1/
source2/

0 directories, 0 files
# tar -tf archive.tar
source1/
source1/file1.png
source1/file2.txt
source1/file3.txt
source2/
source2/file4.png
source2/file5.txt
source2/file6.txt
# tar -xvf archive.tar --wildcards '*.png'
source1/file1.png
source2/file4.png
# tree source1/ source2/
source1/
└── file1.png
source2/
└── file4.png

0 directories, 2 files

 

Utilisation des exclusions

Exclusion d’un motif :

Pour l’archivage :

tar -cvf archive.tar dossiers|fichiers --exclude 'pattern'

ex :

# tree source1/ source2/
source1/
├── file1.png
├── file2.txt
└── file3.txt
source2/
├── file4.png
├── file5.txt
└── file6.txt

0 directories, 6 files
# tar -cvf archive.tar source1/ source2/ --exclude '*.txt'
source1/
source1/file1.png
source2/
source2/file4.png
# tar -tf archive.tar
source1/
source1/file1.png
source2/
source2/file4.png

Pour l’extraction :

tar -xvf archive.tar --exclude 'pattern'

ex :

# tree source1/ source2/
source1/
source2/

0 directories, 0 files
# tar -tf archive.tar
source1/
source1/file1.png
source1/file2.txt
source1/file3.txt
source2/
source2/file4.png
source2/file5.txt
source2/file6.txt
# tar -xvf archive.tar --exclude='*.txt'
source1/
source1/file1.png
source2/
source2/file4.png
# tree source1/ source2/
source1/
└── file1.png
source2/
└── file4.png

0 directories, 2 files
Exclusion à partir d’un fichier de référence :

Pour l’archivage :

tar -cvf archive.tar dossiers|fichiers --exclude-from liste

ex1 : liste de fichiers

# tree source1/ source2/
source1/
├── file1.png
├── file2.txt
└── file3.txt
source2/
├── file4.png
├── file5.txt
└── file6.txt

0 directories, 6 files
# cat liste.txt
source1/file2.txt
source2/file5.txt
# tar -cvf archive.tar source1/ source2/ --exclude-from liste.txt
source1/
source1/file1.png
source1/file3.txt
source2/
source2/file6.txt
source2/file4.png

ex2 : liste d’extensions

# tree source1/ source2/
source1/
├── file1.png
├── file2.jpg
└── file3.txt
source2/
├── file4.png
├── file5.jpg
└── file6.txt

0 directories, 6 files
# cat liste.txt
*.png
*.jpg
# tar -cvf archive.tar source1/ source2/ --exclude-from liste.txt
source1/
source1/file3.txt
source2/
source2/file6.txt

Pour l’extraction :

tar -xvf archive.tar --exclude-from liste

ex1 : liste de fichiers

# tar -tf archive.tar
source1/
source1/file1.png
source1/file2.jpg
source1/file3.txt
source2/
source2/file6.txt
source2/file4.png
source2/file5.jpg
# cat liste.txt
source1/file1.png
source1/file2.jpg
source2/file4.png
source2/file5.jpg
# tar -xvf archive.tar --exclude-from liste.txt
source1/
source1/file3.txt
source2/
source2/file6.txt

ex2 : liste d’extensions

# tar -tf archive.tar
source1/
source1/file1.png
source1/file2.jpg
source1/file3.txt
source2/
source2/file4.png
source2/file5.jpg
source2/file6.txt
# cat liste.txt
*.png
*.jpg
# tar -xvf archive.tar --exclude-from liste.txt
source1/
source1/file3.txt
source2/
source2/file6.txt
Exclusion à partir d’une étiquette lors de l’archivage :
tar -cvf archive.tar dossiers|fichiers --exclude-tag-all 'tag'

Tout dossier contenant le fichier tag sera exclu de l’archivage. Ce dossier mais aussi son contenu récursif seront occultés.
ex :

# tree -a source?/
source1/
├── file1.txt
├── file2.txt
└── .NOBACKUP
source2/
├── file3.txt
├── file4.txt
└── .NOBACKUP
source3/
├── file5.txt
└── file6.txt

0 directories, 8 files
# tar -cvf archive.tar source?/ --exclude-tag-all '.NOBACKUP'
tar: source1/ : contient une étiquette de répertoire cache .NOBACKUP ; répertoire non archivé
tar: source2/ : contient une étiquette de répertoire cache .NOBACKUP ; répertoire non archivé
source3/
source3/file6.txt
source3/file5.txt

Ci-dessus, le fichier caché .NOBACKUP permet d’exclure de l’archivage tous les dossiers dans lesquels il est présent.

 

Comparer le contenu d’une archive avec des fichiers ou dossiers indiqués

tar -df archive.tar

ou

tar -df archive.tar fichiers

ou

tar -df archive.tar dossiers

ex :

# tar -tf archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt
source3/
source3/file7.txt
source3/file8.txt
source3/file9.txt
# tar -df archive.tar source1/ source2/ source3/
source1/file1.txt: La date de modification est différente.
source1/file1.txt: La taille est différente.

 

Extraire seulement certains niveaux de l’arborescence d’une archive

tar -xvf archive.tar --strip-components lvl

Le paramètre appelé ici lvl spécifie à partir de quel niveau l’archive sera extraite (Si 2 alors les niveaux 0 et 1 seront occultés).
Par défaut, l’archive est extraite à partir du niveau 0.
ex :

# tar -tf archive.tar
lvl0/
lvl0/lvl11/
lvl0/lvl11/lvl21/
lvl0/lvl11/lvl21/file31.txt
lvl0/lvl12/
lvl0/lvl12/lvl22/
lvl0/lvl12/lvl22/file32.txt
lvl0/lvl13/
lvl0/lvl13/lvl23/
lvl0/lvl13/lvl23/file33.txt
# tar -xvf archive.tar -C temp/ --strip-components 3
lvl0/lvl11/lvl21/file31.txt
lvl0/lvl12/lvl22/file32.txt
lvl0/lvl13/lvl23/file33.txt
# ls -1 temp/
file31.txt
file32.txt
file33.txt

 

Archiver en suivant les liens symboliques

tar -cvhf archive.tar fichiers/dossiers

ex :

# ls -l source/testlink.txt
lrwxrwxrwx 1 root root 16 oct.  11 14:32 source/testlink.txt -> /tmp/testsrc.txt

Par défaut, seul le lien est archivé :

# tar -cvf archive.tar source/
source/
source/testlink.txt
source/file1.txt
source/file2.txt
source/file3.txt
# tar -tvf archive.tar
drwxr-xr-x root/root         0 2016-10-11 14:32 source/
lrwxrwxrwx root/root         0 2016-10-11 14:32 source/testlink.txt -> /tmp/testsrc.txt
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file1.txt
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file2.txt
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file3.txt

Lors de l’extraction, le lien sera restauré et pointera sur la version actuelle du fichier pointé.
Avec l’option -h, le fichier pointé est archivé et non seulement le lien :

# tar -cvhf archive.tar source/
source/
source/testlink.txt
source/file1.txt
source/file2.txt
source/file3.txt
# tar -tvf archive.tar
drwxr-xr-x root/root         0 2016-10-11 14:32 source/
-rw-r--r-- root/root         0 2016-10-11 14:31 source/testlink.txt
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file1.txt
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file2.txt
-rw-r--r-- root/root         0 2016-10-11 13:11 source/file3.txt

Le fichier archivé sera donc une copie à un instant t (moment de l’archivage) du fichier pointé.
Lors de l’extraction, il n’y aura plus de lien symbolique puisque c’est la copie du fichier qui sera restaurée.

 

Ne pas restaurer les dates de modifications

tar -xvmf archive.tar

ex :
L’exemple se base sur des fichiers dont la date de modification est 13h11.

# ls -la source/
total 8
drwxr-xr-x  2 root     root     4096 oct.  11 16:19 .
drwxr-xr-x 27 adminsys adminsys 4096 oct.  11 16:25 ..
-rw-r--r--  1 root     root        0 oct.  11 13:11 file1.txt
-rw-r--r--  1 root     root        0 oct.  11 13:11 file2.txt
-rw-r--r--  1 root     root        0 oct.  11 13:11 file3.txt

Par défaut, la date de modification est préservée lors de la restauration :

# tar -xvf archive.tar
source/
source/file1.txt
source/file2.txt
source/file3.txt
# ls -l source/
total 0
-rw-r--r-- 1 root root 0 oct.  11 13:11 file1.txt
-rw-r--r-- 1 root root 0 oct.  11 13:11 file2.txt
-rw-r--r-- 1 root root 0 oct.  11 13:11 file3.txt

Avec l’option -x, la date de modification est celle de l’extraction (effectuée ici à 16h26) :

# tar -xvmf archive.tar
source/
source/file1.txt
source/file2.txt
source/file3.txt
# ls -l source/
total 0
-rw-r--r-- 1 root root 0 oct.  11 16:26 file1.txt
-rw-r--r-- 1 root root 0 oct.  11 16:26 file2.txt
-rw-r--r-- 1 root root 0 oct.  11 16:26 file3.txt

 

Archiver à partir d’un fichier liste de référencement

tar -cvf archive.tar --files-from liste

ex :
Prenons un fichier liste.txt contenant la liste de 3 dossiers :

# cat liste.txt
source1/
source2/
source3/

L’archive générée contiendra les fichiers des 3 dossiers listés dans le fichier liste.txt :

# tar -cvf archive.tar --files-from liste.txt
source1/
source1/file2.txt
source1/file1.txt
source1/file3.txt
source2/
source2/file6.txt
source2/file5.txt
source2/file4.txt
source3/
source3/file7.txt
source3/file9.txt
source3/file8.txt

 

Archiver à partir de l’entrée standard

ls -1p | grep -v / | tar -cvf /path/archive.tar --files-from -

Archivera tous les fichiers visibles du répertoire courant (et uniquement les fichiers). L’archive générée ne doit pas se trouver dans le répertoire courant puisque c’est justement celui qui sert de référence à l’archivage.
ex :

# ls -1p | grep -v / | tar -cvf /home/adminsys/archive.tar --files-from -
file1.txt
file2.txt
file3.txt
# tar -tf /home/adminsys/archive.tar
file1.txt
file2.txt
file3.txt
ls -1d */ | tar -cvf /path/archive.tar --files-from -

Archivera tous les dossiers du répertoire courant (et leur contenu), et leur contenu. L’archive générée ne doit pas se trouver dans le répertoire courant puisque c’est justement celui qui sert de référence à l’archivage.
ex :

# ls -1d */ | tar -cvf /home/adminsys/archive.tar --files-from -
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt
source3/
source3/file7.txt
source3/file8.txt
source3/file9.txt
# tar -tf /home/adminsys/archive.tar
source1/
source1/file1.txt
source1/file2.txt
source1/file3.txt
source2/
source2/file4.txt
source2/file5.txt
source2/file6.txt
source3/
source3/file7.txt
source3/file8.txt
source3/file9.txt

Rmq : Pour archiver les fichiers et dossiers (et leur contenu) visibles du répertoire courant :

ls -1p | tar -cvf /path/archive.tar --files-from -

 

Sauvegardes incrémentales

Première sauvegarde : la référence pour les incrémentales qui suivent
tar -cvf archive1.tar dossiers -g liste
Deuxième sauvegarde : la première incrémentale
tar -cvf archive2.tar dossiers -g liste

Si le fichier liste n’existe pas, il sera alors créé automatiquement.
Il sert de référence pour les incrémentales qui suivent la sauvegarde initiale.
ex :

# tar -cvf archive1.tar source/ -g liste.txt
tar: source : le répertoire est nouveau.
source/
source/file1.txt
source/file2.txt
source/file3.txt
# cat liste.txt
GNU tar-1.27.1-2
147655984037336626501476552060614439762049785053sourceYfile1.txtYfile2.txtYfile3.txt
# touch source/file1.txt source/file4.txt
# tar -cvf archive2.tar source/ -g liste.txt
source/
source/file1.txt
source/file4.txt
# cat liste.txt
GNU tar-1.27.1-2
1476560031445987884014765600249058760072049785053sourceYfile1.txtNfile2.txtNfile3.txtYfile4.txt
# tar -tvf archive1.tar
drwxr-xr-x root/root        34 2016-10-15 19:21 source/
-rw-r--r-- root/root         0 2016-10-15 19:14 source/file1.txt
-rw-r--r-- root/root         0 2016-10-15 19:14 source/file2.txt
-rw-r--r-- root/root         0 2016-10-15 19:14 source/file3.txt
# tar -tvf archive2.tar
drwxr-xr-x root/root        45 2016-10-15 21:33 source/
-rw-r--r-- root/root         0 2016-10-15 21:33 source/file1.txt
-rw-r--r-- root/root         0 2016-10-15 21:33 source/file4.txt
Restauration d’une sauvegarde incrémentale :

Restauration de la première sauvegarde

tar -xvf archive1.tar -g /dev/null

Restauration de la première incrémentale

tar -xvf archive2.tar -g /dev/null
# tar -xvf archive1.tar -g /dev/null
source/
source/file1.txt
source/file2.txt
source/file3.txt
# tar -xvf archive2.tar -g /dev/null
source/
source/file1.txt
source/file4.txt
Archivage avec fichiers datés
tar -cvf archive.`date --rfc-3339=date`.tar dossiers -g liste

Génère une archive datée au format archive.AAAA-MM-JJ.tar (utile pour un cron par exemple).

# tar -cvf archive.`date --rfc-3339=date`.tar source/ -g liste.txt
tar: source : le répertoire est nouveau.
source/
source/file1.txt
source/file2.txt
source/file3.txt
# tar -tf archive.2016-10-15.tar
source/
source/file1.txt
source/file2.txt
source/file3.txt

 

Archivage/Désarchivage à la volée

(tar -cvf - .) | (cd /path/destination/ ; tar -xvf -)

ou, encore plus court :

tar c . | tar x -C /path/destination

Ici l’archive est créée sur la sortie standard à partir du répertoire courant. Le résultat est utilisé pour être extrait dans le dossier spécifié par l’option -C.
L’intérêt est limité puisque cela revient à faire une simple copie du répertoire courant vers un autre dossier.
Par contre, cette commande prend tout son intérêt dans connexion distante via SSH puisqu’elle évite de générer une archive nommée, de la copier sur le serveur distant puis de la désarchiver.

 

Archivage/Compression à la volée

Format gzip :
tar -cvf - dossier | gzip -c6 > archive.tar.gz

Equivaut à :
tar -zcvf archive.tar.gz dossier

Format bzip2 :
tar -cvf - dossier | bzip2 -c9 > archive.tar.bz2

Equivaut à :
tar -jcvf archive.tar.bz2 dossier

Format xz :
tar -cvf - dossier | xz -c1 > archive.tar.xz

Equivaut à :
tar -Jcvf archive.tar.xz dossier

 

Afficher la progression d’un tarage ou détarage

Tarage : Progression non graphique
tar -cf - fichiers|dossiers | pv -s $(du -sb fichiers|dossiers | awk '{print $1}') > archive.tar

ex :

# tar -cf - sample | pv -s $(du -sb sample | awk '{print $1}') > sample.tar
tar_no_graph


Tarage : Progression graphique
(tar -cf - fichiers|dossiers | pv -n -s $(du -sb fichiers|dossiers | awk '{print $1}') > archive.tar) 2>&1 | dialog --gauge "text" height width

ex :

# (tar -cf - sample | pv -n -s $(du -sb sample | awk '{print $1}') > sample.tar) 2>&1 | dialog --gauge "Progression..." 7 50
tar_graph3


Détarage : Progression non graphique
pv archive.tar | tar -xf -

ex :

# pv sample.tar | tar -xf -
tar_no_graph2


Détarage : Progression graphique
(pv -n archive.tar | tar -xf -) 2>&1 | dialog --gauge "text" height width

ex :

# (pv -n sample.tar | tar -xf -) 2>&1 | dialog --gauge "Progression..." 7 50
tar_graph4


 

Archivage distant via SSH

Dans les exemples suivants, root est autorisé pour la connexion au serveur distant et l’échange des clefs SSH a été réalisé afin de ne pas saisir de mot de passe lors de la commande.

 

Archivage/désarchivage à la volée

tar c . | ssh user@destinataire "tar x -C /path/destination"

Ici aucune archive n’est créée, l’archivage/désarchivage se font à la volée à partir de l’entrée standard.
ex :

# tar -cv . | ssh root@192.168.1.50 "tar -xv -C /home/adminsys/destination/"
./
./file1.txt
./file2.txt
./file3.txt
./
./file1.txt
./file2.txt
./file3.txt

 

Archivage sur le serveur distant

tar c . | ssh user@destinataire "cat > /path/destination/archive.tar"

ou

tar c . | ssh user@destinataire "dd of=/path/destination/archive.tar"

Ici l’archive n’est créée que sur la destination.
ex :

# tar -cv . | ssh root@192.168.1.50 "cat > /home/adminsys/destination/source.tar"
./
./file1.txt
./file2.txt
./file3.txt
# tar -cv . | ssh root@192.168.1.50 "dd of=/home/adminsys/destination/source.tar"
./
./file1.txt
./file2.txt
./file3.txt
20+0 enregistrements lus
20+0 enregistrements écrits
10240 octets (10 kB) copiés, 0,000272197 s, 37,6 MB/s

 

Restaurer une archive depuis un serveur distant

ssh user@destinataire "cat /path/destination/archive.tar" | tar x

ex :

# ssh root@192.168.1.50 "cat /home/adminsys/destination/source.tar" | tar -xvf -
./
./file1.txt
./file2.txt
./file3.txt

 

Tarer vers une bande LTO distante sans détarer

tar c . | ssh user@destinataire "cat > /dev/st0"

Ici c’est le répertoire courant qui est archivé.

 

Comparatif des formats xz, gzip et bzip2

On utilisera ici un fichier référence appelé sample.tar d’une taille de 100Mo.
Le tableau ci-dessous synthétise les résultats de compression, pour chaque format et chaque niveau de compression.
Le temps de compression affiché est en secondes et la taille du fichier résultant est en Mo (ou pourcentage du fichier original).

Format → XZ GZIP BZIP2
Compression ↓ Temps Mo/% Temps Mo/% Temps Mo/%
0 5.487 19
1 7.563 17 1.796 25 10.008 19
2 11.358 16 1.883 24 10.262 18
3 18.924 16 2.038 23 10.412 17
4 31.184 15 2.135 21 10.575 17
5 46.370 14 2.628 21 11.126 17
6 54.609 14 3.320 20 11.214 17
7 59.790 14 3.917 20 11.295 17
8 71.670 14 5.537 20 11.347 16
9 164.387 13 6.088 20 11.485 16

Le meilleur compromis selon moi, du point de vue du rapport temps/taille finale d’une part, et consommation de RAM et CPU (directement liés au niveau de compression utilisé) d’autre part, apparait en rouge pour chaque format, soit :

  • XZ : niveau 1 (niveau par défaut : 6)
  • GZIP : niveau 6 (niveau par défaut : 6)
  • BZIP2 : niveau 9 (niveau par défaut : 9)

 

Archives compressées GZIP

 

Afficher le contenu d’une archive gzip

tar -tf archive.tar.gz

 

Créer une archive gzip

tar -zcvf archive.tar.gz fichiers|dossiers

Equivaut à (implicite):
tar -zcvf ./archive.tar.gz -C . fichiers|dossiers

tar -zcvf archive.tar.gz /path/fichiers|dossiers

ou, avec conservation du « / » initial :

tar -zcPvf archive.tar.gz /path/fichiers|dossiers

ou, en spécifiant le dossier d’exécution de la commande :

tar -zcvf archive.tar.gz -C /path fichiers|dossiers

 

Extraire une archive gz

tar -zxvf archive.tar.gz

Equivaut à (implicite):
tar -zxvf archive.tar.gz -C .
ou, pour extraire une archive contenant des membres avec « / » initial :

tar -zxPvf archive.tar.gz

Equivaut à (implicite):
tar -zxvf archive.tar.gz -C /
ou, en spécifiant le dossier d’extraction :

tar -zxvf archive.tar.gz -C target/

 

Ajouter des fichiers ou dossiers à une archive gz existante

Une archive compressée ne peut pas être mise à jour

 

Ajouter le contenu d’une archive gz à une archive gz existante

Impossible de concaténer des archives compressées

 

Supprimer des fichiers ou dossiers d’une archive gz existante

Une archive compressée ne peut pas être mise à jour

 

Restaurer uniquement certains fichiers d’une archive gz

tar -zxvf archive.tar.gz fichiers|dossiers

ou, en spécifiant un fichier référence en entrée :

tar -zxvf archive.tar.gz --files-from liste

ou, en préservant les fichiers existants de même nom :

tar -zxvf archive.tar.gz --keep-old-files

ou, en préservant les fichiers existants de même nom s’ils sont plus récents ou de même date :

tar -zxvf archive.tar.gz --keep-newer-files

 

Utilisation des wildcards lors de l’extraction d’une archive gz

tar -zxvf archive.tar.gz --wildcards 'pattern'

 

Exclusion d’un motif

Lors de l’archivage :

tar -zcvf archive.tar.gz dossiers|fichiers --exclude 'pattern'

Lors de l’extraction :

tar -zxvf archive.tar.gz --exclude 'pattern'

 

Exclusion à partir d’un fichier de référence

Lors de l’archivage :

tar -zcvf archive.tar.gz dossiers|fichiers --exclude-from liste

Lors de l’extraction :

tar -zxvf archive.tar.gz --exclude-from liste

 

Exclusion à partir d’une étiquette lors de l’archivage

tar -zcvf archive.tar.gz dossiers|fichiers --exclude-tag-all 'tag'

 

Comparer le contenu d’une archive gz avec des fichiers ou dossiers indiqués

tar -df archive.tar.gz

ou

tar -df archive.tar.gz fichiers|dossiers

 

Extraire seulement certains niveaux de l’arborescence d’une archive

tar -zxvf archive.tar.gz --strip-components lvl

 

Archiver en suivant les liens symboliques

tar -zcvhf archive.tar.gz fichiers|dossiers

 

Ne pas restaurer les dates de modifications

tar -zxvmf archive.tar.gz

 

Archiver à partir d’un fichier liste de référencement

tar -zcvf archive.tar.gz --files-from liste

 

Archiver à partir de l’entrée standard

Les fichiers du répertoire courant :

ls -1p | grep -v / | tar -zcvf /path/archive.tar.gz --files-from -

Les dossiers du répertoire courant (récursivement) :

ls -1d */ | tar -zcvf /path/archive.tar.gz --files-from -

Les fichiers et dossiers (récursivement) du répertoire courant :

ls -1p | tar -zcvf /path/archive.tar.gz --files-from -

 

Sauvegardes incrémentales

Première sauvegarde : la référence pour les incrémentales qui suivent

tar -zcvf archive1.tar.gz dossiers -g liste

Deuxième sauvegarde : la première incrémentale

tar -zcvf archive2.tar.gz dossiers -g liste

Restauration de la première sauvegarde

tar -zxvf archive1.tar.gz -g /dev/null

Restauration de la première incrémentale

tar -zxvf archive2.tar.gz -g /dev/null
Archivage avec fichiers datés
tar -zcvf archive.`date --rfc-3339=date`.tar.gz dossiers -g liste

 

SSH : Archivage/désarchivage GZ à la volée

tar zc . | ssh user@destinataire "tar zx -C /path/destination"

 

SSH : Archivage GZ sur le serveur distant

tar zc . | ssh user@destinataire "cat > /path/destination/archive.tar.gz"

ou

tar zc . | ssh user@destinataire "dd of=/path/destination/archive.tar.gz"

 

SSH : Restaurer une archive GZ depuis un serveur distant

ssh user@destinataire "cat /path/destination/archive.tar.gz" | tar zx

 

Afficher la progression d’une compression ou décompression

Compression : Progression non graphique
tar -cf - fichiers|dossiers | pv -s $(du -sb fichiers|dossiers | awk '{print $1}') | gzip -c6 > archive.tar.gz

ex :

# tar -cf - sample | pv -s $(du -sb sample | awk '{print $1}') | gzip -c6 > sample.tar.gz
pv_tgz_comp1


Compression : Progression graphique
(tar -cf - fichiers|dossiers | pv -n -s $(du -sb fichiers|dossiers | awk '{print $1}') | gzip -c6 > archive.tar.gz) 2>&1 | dialog --gauge "text" height width

ex :

# (tar -cf - sample | pv -n -s $(du -sb sample | awk '{print $1}') | gzip -c6 > sample.tar.gz) 2>&1 | dialog --gauge "Progression..." 7 50
pv_tgz_comp2


Décompression : Progression non graphique
pv archive.tar.gz | tar -zxf -

ex :

# pv sample.tar.gz | tar -zxf -
pv_tgz_uncomp1


Décompression : Progression graphique
(pv -n archive.tar.gz | tar -zxf -) 2>&1 | dialog --gauge "text" height width

ex :

# (pv -n sample.tar.gz | tar -zxf -) 2>&1 | dialog --gauge "Progression..." 7 50
pv_tgz_uncomp2


 

Archives compressées BZIP2

 

Afficher le contenu d’une archive bzip2

tar -tf archive.tar.bz2

 

Créer une archive bzip2

tar -jcvf archive.tar.bz2 fichiers|dossiers

Equivaut à (implicite):
tar -jcvf ./archive.tar.bz2 -C . fichiers|dossiers

tar -jcvf archive.tar.bz2 /path/fichiers|dossiers

ou, avec conservation du « / » initial :

tar -jcPvf archive.tar.bz2 /path/fichiers|dossiers

ou, en spécifiant le dossier d’exécution de la commande :

tar -jcvf archive.tar.bz2 -C /path fichiers|dossiers

 

Extraire une archive bz2

tar -jxvf archive.tar.bz2

Equivaut à (implicite):
tar -jxvf archive.tar.bz2 -C .
ou, pour extraire une archive contenant des membres avec « / » initial :

tar -jxPvf archive.tar.bz2

Equivaut à (implicite):
tar -jxvf archive.tar.bz2 -C /
ou, en spécifiant le dossier d’extraction :

tar -jxvf archive.tar.bz2 -C target/

 

Ajouter des fichiers ou dossiers à une archive bz2 existante

Une archive compressée ne peut pas être mise à jour

 

Ajouter le contenu d’une archive bz2 à une archive bz2 existante

Impossible de concaténer des archives compressées

 

Supprimer des fichiers ou dossiers d’une archive bz2 existante

Une archive compressée ne peut pas être mise à jour

 

Restaurer uniquement certains fichiers d’une archive bz2

tar -jxvf archive.tar.bz2 fichiers|dossiers

ou, en spécifiant un fichier référence en entrée :

tar -jxvf archive.tar.bz2 --files-from liste

ou, en préservant les fichiers existants de même nom :

tar -jxvf archive.tar.bz2 --keep-old-files

ou, en préservant les fichiers existants de même nom s’ils sont plus récents ou de même date :

tar -jxvf archive.tar.bz2 --keep-newer-files

 

Utilisation des wildcards lors de l’extraction d’une archive bz2

tar -jxvf archive.tar.bz2 --wildcards 'pattern'

 

Exclusion d’un motif

Lors de l’archivage :

tar -jcvf archive.tar.bz2 dossiers|fichiers --exclude 'pattern'

Lors de l’extraction :

tar -jxvf archive.tar.bz2 --exclude 'pattern'

 

Exclusion à partir d’un fichier de référence

Lors de l’archivage :

tar -jcvf archive.tar.bz2 dossiers|fichiers --exclude-from liste

Lors de l’extraction :

tar -jxvf archive.tar.bz2 --exclude-from liste

 

Exclusion à partir d’une étiquette lors de l’archivage

tar -jcvf archive.tar.bz2 dossiers|fichiers --exclude-tag-all 'tag'

 

Comparer le contenu d’une archive bz2 avec des fichiers ou dossiers indiqués

tar -df archive.tar.bz2

ou

tar -df archive.tar.bz2 fichiers|dossiers

 

Extraire seulement certains niveaux de l’arborescence d’une archive

tar -jxvf archive.tar.bz2 --strip-components lvl

 

Archiver en suivant les liens symboliques

tar -jcvhf archive.tar.bz2 fichiers|dossiers

 

Ne pas restaurer les dates de modifications

tar -jxvmf archive.tar.bz2

 

Archiver à partir d’un fichier liste de référencement

tar -jcvf archive.tar.bz2 --files-from liste

 

Archiver à partir de l’entrée standard

Les fichiers du répertoire courant :

ls -1p | grep -v / | tar -jcvf /path/archive.tar.bz2 --files-from -

Les dossiers du répertoire courant (récursivement) :

ls -1d */ | tar -jcvf /path/archive.tar.bz2 --files-from -

Les fichiers et dossiers (récursivement) du répertoire courant :

ls -1p | tar -jcvf /path/archive.tar.bz2 --files-from -

 

Sauvegardes incrémentales

Première sauvegarde : la référence pour les incrémentales qui suivent

tar -jcvf archive1.tar.bz2 dossiers -g liste

Deuxième sauvegarde : la première incrémentale

tar -jcvf archive2.tar.bz2 dossiers -g liste

Restauration de la première sauvegarde

tar -jxvf archive1.tar.bz2 -g /dev/null

Restauration de la première incrémentale

tar -jxvf archive2.tar.bz2 -g /dev/null
Archivage avec fichiers datés
tar -jcvf archive.`date --rfc-3339=date`.tar.bz2 dossiers -g liste

 

SSH : Archivage/désarchivage BZ2 à la volée

tar jc . | ssh user@destinataire "tar jx -C /path/destination"

 

SSH : Archivage BZ2 sur le serveur distant

tar jc . | ssh user@destinataire "cat > /path/destination/archive.tar.bz2"

ou

tar jc . | ssh user@destinataire "dd of=/path/destination/archive.tar.bz2"

 

SSH : Restaurer une archive BZ2 depuis un serveur distant

ssh user@destinataire "cat /path/destination/archive.tar.bz2" | tar jx

 

Afficher la progression d’une compression ou décompression

Compression : Progression non graphique
tar -cf - fichiers|dossiers | pv -s $(du -sb fichiers|dossiers | awk '{print $1}') | bzip2 -c9 > archive.tar.bz2

ex :

# tar -cf - sample | pv -s $(du -sb sample | awk '{print $1}') | bzip2 -c9 > sample.tar.bz2
pv_tbz2_comp1


Compression : Progression graphique
(tar -cf - fichiers|dossiers | pv -n -s $(du -sb fichiers|dossiers | awk '{print $1}') | bzip2 -c9 > archive.tar.bz2) 2>&1 | dialog --gauge "text" height width

ex :

# (tar -cf - sample | pv -n -s $(du -sb sample | awk '{print $1}') | bzip2 -c9 > sample.tar.bz2) 2>&1 | dialog --gauge "Progression..." 7 50
pv_tbz2_comp2


Décompression : Progression non graphique
pv archive.tar.bz2 | tar -jxf -

ex :

# pv sample.tar.bz2 | tar -jxf -
pv_tbz2_uncomp1


Décompression : Progression graphique
(pv -n archive.tar.bz2 | tar -jxf -) 2>&1 | dialog --gauge "text" height width

ex :

# (pv -n sample.tar.bz2 | tar -jxf -) 2>&1 | dialog --gauge "Progression..." 7 50
pv_tbz2_uncomp2


 

Archives compressées XZ

 

Afficher le contenu d’une archive xz

tar -tf archive.tar.xz

 

Créer une archive xz

tar -Jcvf archive.tar.xz fichiers|dossiers

Equivaut à (implicite):
tar -Jcvf ./archive.tar.xz -C . fichiers|dossiers

tar -Jcvf archive.tar.xz /path/fichiers|dossiers

ou, avec conservation du « / » initial :

tar -JcPvf archive.tar.xz /path/fichiers|dossiers

ou, en spécifiant le dossier d’exécution de la commande :

tar -Jcvf archive.tar.xz -C /path fichiers|dossiers

 

Extraire une archive xz

tar -Jxvf archive.tar.xz

Equivaut à (implicite):
tar -Jxvf archive.tar.xz -C .
ou, pour extraire une archive contenant des membres avec « / » initial :

tar -JxPvf archive.tar.xz

Equivaut à (implicite):
tar -Jxvf archive.tar.xz -C /
ou, en spécifiant le dossier d’extraction :

tar -Jxvf archive.tar.xz -C target/

 

Ajouter des fichiers ou dossiers à une archive xz existante

Une archive compressée ne peut pas être mise à jour

 

Ajouter le contenu d’une archive xz à une archive xz existante

Impossible de concaténer des archives compressées

 

Supprimer des fichiers ou dossiers d’une archive xz existante

Une archive compressée ne peut pas être mise à jour

 

Restaurer uniquement certains fichiers d’une archive xz

tar -Jxvf archive.tar.xz fichiers|dossiers

ou, en spécifiant un fichier référence en entrée :

tar -Jxvf archive.tar.xz --files-from liste

ou, en préservant les fichiers existants de même nom :

tar -Jxvf archive.tar.xz --keep-old-files

ou, en préservant les fichiers existants de même nom s’ils sont plus récents ou de même date :

tar -Jxvf archive.tar.xz --keep-newer-files

 

Utilisation des wildcards lors de l’extraction d’une archive xz

tar -Jxvf archive.tar.xz --wildcards 'pattern'

 

Exclusion d’un motif

Lors de l’archivage :
tar -Jcvf archive.tar.xz dossiers|fichiers --exclude 'pattern'
Lors de l’extraction :
tar -Jxvf archive.tar.xz --exclude 'pattern'

 

Exclusion à partir d’un fichier de référence

Lors de l’archivage :
tar -Jcvf archive.tar.xz dossiers|fichiers --exclude-from liste
Lors de l’extraction :
tar -Jxvf archive.tar.xz --exclude-from liste

 

Exclusion à partir d’une étiquette lors de l’archivage

tar -Jcvf archive.tar.xz dossiers|fichiers --exclude-tag-all 'tag'

 

Comparer le contenu d’une archive xz avec des fichiers ou dossiers indiqués

tar -df archive.tar.xz

ou

tar -df archive.tar.xz fichiers|dossiers

 

Extraire seulement certains niveaux de l’arborescence d’une archive

tar -Jxvf archive.tar.xz --strip-components lvl

 

Archiver en suivant les liens symboliques

tar -Jcvhf archive.tar.xz fichiers|dossiers

 

Ne pas restaurer les dates de modifications

tar -Jxvmf archive.tar.xz

 

Archiver à partir d’un fichier liste de référencement

tar -Jcvf archive.tar.xz --files-from liste

 

Archiver à partir de l’entrée standard

Les fichiers du répertoire courant :

ls -1p | grep -v / | tar -Jcvf /path/archive.tar.xz --files-from -

Les dossiers du répertoire courant (récursivement) :

ls -1d */ | tar -Jcvf /path/archive.tar.xz --files-from -

Les fichiers et dossiers (récursivement) du répertoire courant :

ls -1p | tar -Jcvf /path/archive.tar.xz --files-from -

 

Sauvegardes incrémentales

Première sauvegarde : la référence pour les incrémentales qui suivent
tar -Jcvf archive1.tar.xz dossiers -g liste
Deuxième sauvegarde : la première incrémentale
tar -Jcvf archive2.tar.xz dossiers -g liste
Restauration de la première sauvegarde
tar -Jxvf archive1.tar.xz -g /dev/null
Restauration de la première incrémentale
tar -Jxvf archive2.tar.xz -g /dev/null
Archivage avec fichiers datés
tar -Jcvf archive.`date --rfc-3339=date`.tar.xz dossiers -g liste

 

SSH : Archivage/désarchivage XZ à la volée

tar Jc . | ssh user@destinataire "tar Jx -C /path/destination"

 

SSH : Archivage XZ sur le serveur distant

tar Jc . | ssh user@destinataire "cat > /path/destination/archive.tar.xz"

ou

tar Jc . | ssh user@destinataire "dd of=/path/destination/archive.tar.xz"

 

SSH : Restaurer une archive XZ depuis un serveur distant

ssh user@destinataire "cat /path/destination/archive.tar.xz" | tar Jx

 

Afficher la progression d’une compression ou décompression

Compression : Progression non graphique
tar -cf - fichiers|dossiers | pv -s $(du -sb fichiers|dossiers | awk '{print $1}') | xz -c1 > archive.tar.xz

ex :

# tar -cf - sample | pv -s $(du -sb sample | awk '{print $1}') | xz -c1 > sample.tar.xz
pv_txz_comp1


Compression : Progression graphique
(tar -cf - fichiers|dossiers | pv -n -s $(du -sb fichiers|dossiers | awk '{print $1}') | xz -c1 > archive.tar.xz) 2>&1 | dialog --gauge "text" height width

ex :

# (tar -cf - sample | pv -n -s $(du -sb sample | awk '{print $1}') | xz -c1 > sample.tar.xz) 2>&1 | dialog --gauge "Progression..." 7 50
pv_txz_comp2


Décompression : Progression non graphique
pv archive.tar.xz | tar -Jxf -

ex :

pv sample.tar.xz | tar -Jxf -
pv_txz_uncomp1


Décompression : Progression graphique
(pv -n archive.tar.xz | tar -Jxf -) 2>&1 | dialog --gauge "text" height width

ex :

(pv -n sample.tar.xz | tar -Jxf -) 2>&1 | dialog --gauge "Progression..." 7 50
pv_txz_uncomp2


Fermer le menu
%d blogueurs aiment cette page :