tar --excludes选项仅排除当前工作目录中的目录,而不是子目录

时间:2014-06-13 04:53:15

标签: tar

我想tar / zip目录./(当前工作目录)并排除目录./vendor中的文件,我碰巧在./public/web/vendor上也有一个名为vendor的子目录,但我想要保持这一点。我试过了:

tar cfz /private/var/folders/temp/mage6BRQWJ.tar.gz  --exclude=vendor/*     ./
tar cfz /private/var/folders/temp/mage6BRQWJ.tar.gz  --exclude=./vendor/*   ./
tar cfz /private/var/folders/temp/mage6BRQWJ.tar.gz  --exclude="vendor/*"     ./

但这些都排除了子目录。

我想使用相对路径,因为我想从所有目录中排除所有.svn(例如示例)文件。

有没有办法,使用相对路径,排除./vendor目录中的文件而不是./public/web/vendor?

1 个答案:

答案 0 :(得分:1)

您需要的只是--anchored标记:

GNU tar:

tar cfz mage6BRQWJ.tar.gz --anchored --exclude=vendor *

的bsdtar:

bsdtar -czf mage6BRQWJ-1.tar.gz --exclude=^vendor *

有效。