使用 --exclude 排除 tar 中的特定目录

Excluding specific directory in tar using --exclude

设想以下目录结构:

tartest> find .
.
./node_modules
./foo
./foo/node_modules
./foo/foo.js

有没有一种方法可以使用 only tar(不是find/xargs 解)。

我原以为使用 ./node_modules 指定排除的目录会起作用,但是

tartest> tar cvfz ../foo.tar.gz  --exclude='./node_modules' .
a .
a ./foo
a ./foo/foo.js
tar cvfz ../foo.tar.gz  --exclude='^./node_modules' .

因为 --exclude 采用一种模式。作为行首匹配的“^”是否对您的 tar.

版本有效还有待观察

我建议将 cvfz 替换为 cvzf