Compression multiple chemin

Bonjour,

Je voudrais savoir si il y a un moyen de compresser plusieurs fichiers situés dans des chemins différents dans un même fichier ? :confused:

Merci pour vos retours.

Tout dépend de ton compresseur …

Pour tout vous dire je suis un débutant en Linux donc j’utilise juste tar pour décompresser.
Après je connais un peu gzip.

Pour information tous les chemins des fichiers sont dans un seul fichier comme ceci :
/var/folder/image1.jpg
/var/folder2/image4.jpg
etc

tar ne fait pas de compression mais de l’archivage : il enregistre plusieurs fichiers ou répertoires dans une archive. Il peut optionnellement faire appel à un compresseur externe (gzip, bzip2, xz…) pour compresser l’archive.

Pour inclure dans une archive tar (compressée ou non) des fichiers dont la liste est dans un fichier, tu peux soit inclure le contenu de la liste en ligne de commande avec la syntaxe [mono]$(cat liste)[/mono] ou [mono]cat liste[/mono], soit utiliser l’option [mono]-T[/mono] de tar.

tar czf archive.tar $(cat liste) tar czf archive.tar -T liste

Ok et si je veux utiliser gzip ?

gzip ne compresse qu’un fichier à la fois, il ne crée par d’archive contenant plusieurs fichiers (et par défaut il remplace le fichier d’origine par le fichier compressé en ajoutant le suffixe [mono].gz[/mono] et vice versa). Pour l’utiliser avec tar, c’est l’option [mono]z[/mono] qui figure dans mon exemple précédent (j’ai oublié d’ajouter le suffixe [mono].gz[/mono] pour indiquer que l’archive tar est compressée avec gzip, ce n’est pas nécessaire techniquement mais juste informatif).

J’avance un peu grâce à l’aide de PascalHambourg.
Voici ma ligne de commande :

tar -cvzf archive.tar.gz $(cat liste)

Le soucis est que mes fichiers que j’archive reste dans leur chemin.
Comment puis je faire pour qu’il soit supprimer automatiquement ?

Pour cela je te redirige vers la commande suivante qui te détaillera toute les subtilités de tar

J’avance encore voici ma ligne de commande :

tar -cvzf archive.tar.gz $(cat liste) --remove-files

Mon dernier problème est le message d’erreur (warning) qui intervient lors du lancement de celle ci :

tar: Suppression de « / » au début des noms des membres

C’est juste pour que lors de la décompression, le répertoire de base soit le répertoire courant et pas la racine du système. Mais si je souhaite garder le / pour au cas ou je souhaiterai restaurer dans le répertoire racine ?

A moins que je dois tout simplement lancer la décompression depuis la racine ?

Encore un pas en avant.
Je me suis débrouillé avec la commande -P.

Par contre l’utilisateur a changé sa demande, il veut que tous les fichiers soient archivés à la racine. Qu’il n’y est plus les chemins complets.

Malgrès mes recherches je ne trouve pas la solution. :smiling_imp:

J’ai tout compte fait changer de commande avec celle ci :

cp $(cat liste.txt) /tmp

Merci en tout cas pour vos retours cela m’a bien aidé. :wink: