You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Rsync仅同步node_modules目录外的所有index.js文件(不使用filelist.txt)

如何使用Rsync仅同步node_modules目录外的所有index.js文件(不使用filelist.txt)

看起来你当前的rsync命令会把node_modules目录里的index.js也同步进来,问题出在过滤规则的顺序上——rsync是按规则的先后顺序匹配的,一旦某条规则匹配成功,就会停止处理后续规则。咱们调整一下规则顺序就能完美解决这个问题:

rsync -rv --exclude='node_modules/' --include='*/' --include='index.js' --exclude='*' --prune-empty-dirs /www /testbackup -n

我来给你拆解下每个规则的作用:

  • --exclude='node_modules/':这条规则要放在最前面,直接排除所有node_modules目录及其下的所有内容,这样node_modules里的文件根本不会进入后续规则的匹配流程。
  • --include='*/':包含所有目录,这一步很关键——rsync需要遍历目录才能找到深层子文件夹里的index.js,要是漏掉这条,只会同步根目录下的index.js。
  • --include='index.js':明确指定要同步所有index.js文件,这时候因为已经提前排除了node_modules,所以只会匹配到node_modules之外的目标文件。
  • --exclude='*':排除所有未被前面规则包含的文件和目录,确保只有我们需要的index.js被同步。
  • --prune-empty-dirs:同步完成后自动清理目标目录里的空文件夹,避免因为大部分内容被排除而留下一堆空目录。
  • -n:这是测试模式,只会输出将要同步的内容,不会实际修改目标目录,你可以先通过这个模式确认输出符合预期,再去掉-n执行真实同步。

你可以运行上面的测试命令看看,输出里应该就不会再出现node_modules下的index.js啦。

备注:内容来源于stack exchange,提问作者Sandri Dianan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 07:23:21