web-dev-qa-db-fra.com

tar/gzip en excluant certains fichiers

J'ai un répertoire avec plusieurs sous-répertoires. Dans certains de ces sous-répertoires, j'ai des fichiers avec l'extension *.asc et d'autres avec *.xdr.

Je souhaite créer un fichier SINGLE tarball/gzip qui conserve la structure de répertoires mais exclut tous les fichiers portant l'extension *.xdr.

Comment puis-je faire ceci?

J'ai fait quelque chose comme find . -depth -name *.asc -exec gzip -r9 {} + mais cela gzips chaque fichier *.asc individuellement, ce qui n'est pas ce que je veux faire.

13
user1654183

Vous devez utiliser l'option --exclude:

tar -zc -f test.tar.gz --exclude='*.xdr' *

31
Allolex

gzip gérera toujours les fichiers individuellement. Si vous voulez une archive groupée, vous devez d'abord tarifier les fichiers, puis gzip le résultat. Vous obtiendrez ainsi un fichier .tar.gz ou .tgz en abrégé.

Pour obtenir un meilleur contrôle sur ce que vous faites, vous pouvez find les fichiers d’abord en utilisant la commande que vous avez déjà publiée (avec -print insted de la commande gzip), placez-les dans un fichier et utilisez ce fichier (= filelist.txt) pour uinstruct tar avec quoi archiver

tar -T filelist.txt -c -v -f myarchive.tar
1
cars10m