制作tar存档时如何按名称递归排除文件夹?

W.M*_*.M. 3 gzip backup tar

我知道可以通过这样的命令排除特定文件夹:

tar --exclude='/srv/www/project/node_modules' -zcvf /backup/project.tgz .
Run Code Online (Sandbox Code Playgroud)

我的问题如何排除node_modules在整个/srv/www目录中任何地方命名的任何文件夹,排除它并排除它下的所有文件夹?

Raf*_*ffa 5

即使在不同的子目录下有多个副本,要排除该目录node_modules所在/srv/www/的目录,只需不要在该--exclude部分指定路径并像这样使用它:

tar -zcvf /backup/project.tar.gz --exclude "node_modules" /srv/www/
Run Code Online (Sandbox Code Playgroud)

这将排除完全命名的所有目录和文件node_modules以及/srv/www/.