Как сделать tar исключить скрытые каталоги

Когда я хочу исключить каталоги при taring, я обычно использую синтаксис следующим образом:

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

Как я могу изменить это, чтобы исключить все скрытые каталоги, например, в дополнение к .ssh/, я также хочу исключить .vnc/,.wine/и т.д.

Ответ 1

Вы можете использовать --exclude = ". *"

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

Будьте осторожны, если вы просматриваете текущий каталог, так как он также будет исключен этим сопоставлением с шаблоном.

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

Затем вам нужно использовать --exclude = '. [^/] *', Как описано в другом месте.

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