Je voudrais savoir si tar (1.15.1, système Linux) a déjà quelque chose comme ça avant de créer un script pour lui.
Je voudrais créer un dir.tar.gz
un dir.tar.gz
donné dir/
contenant un dir/myfile.gz
spécifique dir/myfile.gz
. Je voudrais que la commande fasse 2 choses spécifiques:
dir/myfile.gz
dir/
après que dir.tar.gz
soit terminé. Par exemple:
tree -if . . ./dir ./dir/dir2 ./dir/dir2/file3 ./dir/file1 ./dir/file2 ./dir/myfile.gz 2 directories, 4 files
Je voudrais que le résultat de la commande tar
soit:
tree -if . ./dir ./dir/myfile.gz ./dir.tar.gz 1 directory, 2 files
J’ai lu sur les options --delete
et --extract
, mais je ne sais pas comment les appliquer en une seule commande. Des idées?
Cela devrait fonctionner:
tar -zcvf dir.tar.gz --exclude="*.gz" ./dir/. && find ./dir/. ! -name "*.gz" -exec rm -rf {} +
$ tree -if . . ./dir ./dir/dir2 ./dir/dir2/file3 ./dir/file1 ./dir/file2 ./dir/myfile.gz 2 directories, 4 files $ tar -zcvf dir.tar.gz --exclude="*.gz" ./dir/. && find ./dir/. ! -name "*.gz" -exec rm -rf {} + ./dir/./ ./dir/./file1 ./dir/./dir2/ ./dir/./dir2/file3 ./dir/./file2 rm: cannot remove `.' or `..' $ tree -if . . ./dir ./dir/myfile.gz ./dir.tar.gz 1 directory, 2 files
Vous pouvez également être intéressé par les retards qui sont un post-processeur tar (filtre), vous pouvez donc opérer (même à la volée) sur votre archive tar et supprimer le fichier incriminé.