如何使 tar 排除隐藏目录
Posted
技术标签:
【中文标题】如何使 tar 排除隐藏目录【英文标题】:how to make tar exclude hidden directories 【发布时间】:2013-12-27 13:53:27 【问题描述】:当我想在去皮时排除目录时,我通常使用如下语法:
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
那么你需要按照elsewhere的描述使用--exclude='.[^/]*'
$ tar --exclude='.[^/]*' -czvf test.tgz ./
./
./seen
【讨论】:
或者只使用--exclude=".+",并将路径设置为“.” 看来--exculde=".*"
现在是定位的,需要先走,否则无效:tar --exclude=".*" -czvf test.tgz directory_to_be_archived
以上是关于如何使 tar 排除隐藏目录的主要内容,如果未能解决你的问题,请参考以下文章
如何在 CentOS 6.4 上使用 tar 排除目录和/或子目录