web-dev-qa-db-fra.com

comment faire tar exclure les répertoires cachés

Lorsque je souhaite exclure des répertoires lors du tarage, j'utilise généralement une syntaxe comme celle-ci:

tar -zcf /backup/backup.tar.gz --exclude="/home/someuser/.ssh" /home/someuser

Comment puis-je modifier cela pour exclure tous les répertoires cachés, par exemple, en plus de .ssh /, je veux également exclure .vnc /, .wine /, etc.

25
user788171

Vous pouvez utiliser --exclude = ". *"

$ tar -czvf test.tgz test/
test/
test/seen
test/.hidden
$ tar --exclude=".*" -czvf test.tgz test/
test/
test/seen

Soyez prudent si vous tarez le répertoire courant, car il sera également exclu par cette correspondance de modèle.

$ cd test
$ tar --exclude=".*" -czvf test.tgz ./
$ tar -czvf test.tgz ./
./
./seen
./.hidden

Ensuite, vous devez utiliser --exclude = '. [^ /] *' Comme décrit ailleurs

$ tar --exclude='.[^/]*' -czvf test.tgz ./
./
./seen
45
joelostblom