当我想在打包时排除目录时,通常会使用这样的语法:
tar -zcf /backup/backup.tar.gz --exclude="/home/someuser/.ssh" /home/someuser
我该如何修改以排除所有隐藏的目录,例如除了 .ssh/ 之外,我还想排除 .vnc/,.wine/ 等等。
你可以使用--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
--exclude=".*"
现在是位置参数,需要放在第一位,否则没有效果:tar --exclude=".*" -czvf test.tgz directory_to_be_archived
。 - 0range