如何让 tar 排除隐藏目录

问题描述 投票:0回答:2

当我想在去皮时排除目录时,我通常使用如下语法:

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

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

hidden tar
2个回答
77
投票

您可以使用

--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

0
投票

$ sudo tar --exclude='.*' -czvf /backup.tar.gz .

结果:空 因为文件是这样的: ./ ./测试.zip ./logger.php ./.bz ./test.tar.gz ./测试.文本 ./bz

正确使用 --排除='*/.*'

© www.soinside.com 2019 - 2024. All rights reserved.