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


tar --excludes option to exclude only the directory at current working directory, not subdirectories

我想对目录进行tar/zip压缩。/(当前工作目录)并排除目录中的文件。/vendor,我碰巧在/public/web/vendor还有一个子目录vendor,但我想保留它。我试过了:

1
2
3
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目录中的文件?


您只需要--anchored标签:

GNU焦油:

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

BSDAR:

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

那是有效的。