如何使tar排除隐藏目录

use*_*171 24 hidden tar

当我想在去皮时排除目录时,我通常使用这样的语法:

tar -zcf /backup/backup.tar.gz --exclude="/home/someuser/.ssh" /home/someuser
Run Code Online (Sandbox Code Playgroud)

如何修改此选项以排除所有隐藏目录,例如,除了.ssh /之外,我还想排除.vnc /,.wine /等.

joe*_*lom 43

你可以使用--exclude =".*"

$ tar -czvf test.tgz test/
test/
test/seen
test/.hidden
$ tar --exclude=".*" -czvf test.tgz test/
test/
test/seen
Run Code Online (Sandbox Code Playgroud)

如果要去皮当前目录,请小心,因为它也将被此模式匹配排除.

$ cd test
$ tar --exclude=".*" -czvf test.tgz ./
$ tar -czvf test.tgz ./
./
./seen
./.hidden
Run Code Online (Sandbox Code Playgroud)

然后你需要使用--exclude ='.[^ /]*',如别处所述

$ tar --exclude='.[^/]*' -czvf test.tgz ./
./
./seen
Run Code Online (Sandbox Code Playgroud)

  • 似乎`--exculde =".*"`现在是位置的,需要先行,否则无效:`tar --exclude =".*" - czvf test.tgz directory_to_be_archived` (9认同)