Syntaxe usuelle d la commande tar pour la création d’une archive
soit la structure de fichiers suivant : ./test/folder1/folder1a/fichier1.txt ./test/folder1/fichier1.txt ./test/folder2/fichier3.txt Nous sommes dans le répertoire test, et nous créons une archive de façon classique sans compression: > tar -cvf archive.tar * folder1/ folder1/folder1a/ folder1/folder1a/fichier1.txt folder1/fichier1.txt folder2/ folder2/fichier3.txt Pour voir le contenu sans le désarchiver > tar -tf archive.tar folder1/ folder1/folder1a/ folder1/folder1a/fichier1.txt folder1/fichier1.txt folder2/ folder2/fichier3.txt
Nous voyons que les fichier ainsi que les dossiers sont préservés, ainsi si vous décompressez l’archive dans un autres répertoire, la structure sera conservée.
Archiver avec tar sans garder la structure des fichiers
Parfois on a envie de rassembler tous les fichiers sans conserver l’arborescence, dans un unique répertoire. Voici comment faire :
On se place dans le répertoire à archiver. > find . -type f | tar --transform='s|^\./||;s|/|_|g' -T - -cvf archive.tar on pipe deux commandes find .-type f va trouver tous les fichiers à partir de là où se trouve l'invite de commande Le seconde commande va archiver avec une transformation, on renomme les fichiers qui sont à archiver pour les rendre uniques. Le format du nom du fichier est composé de mot du chemin vers le fichier dont les slash seront transformés en underscore. > tar -tf archive.tar folder1_folder1a_fichier1.txt folder1_fichier1.txt folder2_fichier3.txt
Le renommage est plus prudent car on peut avoir deux fichiers du même nom.