【发布时间】:2013-12-27 13:53:27
【问题描述】:
当我想在去皮时排除目录时,我通常使用如下语法:
tar -zcf /backup/backup.tar.gz --exclude="/home/someuser/.ssh" /home/someuser
如何修改这个排除所有隐藏目录,比如除了.ssh/,我还想排除.vnc/、.wine/等。
【问题讨论】:
当我想在去皮时排除目录时,我通常使用如下语法:
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
那么你需要按照elsewhere的描述使用--exclude='.[^/]*'
$ tar --exclude='.[^/]*' -czvf test.tgz ./
./
./seen
【讨论】:
--exculde=".*"现在是定位的,需要先走,否则无效:tar --exclude=".*" -czvf test.tgz directory_to_be_archived