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

使用rsync复制不含文件及隐藏目录的目录树失败,求原因与解决方案

问题原因与解决方案

失败原因

rsync的匹配规则是按顺序生效的,当规则冲突时,先匹配到的规则优先级更高。你原来的命令里:

  1. 先执行--include '*/',这条规则会匹配所有目录(包括.hidden、a/.hidden这类隐藏目录),一旦匹配成功,后续的--exclude '.*/'就不会再对这些目录生效。
  2. 后续的排除规则根本没机会处理已经被include选中的隐藏目录,所以隐藏目录仍会被复制。

正确解决方案

调整规则顺序,先排除所有隐藏目录,再包含非隐藏目录,最后排除所有文件,确保隐藏目录在被include之前就被排除。执行以下命令:

rsync -av --exclude '.*/' --include '*/' --exclude '*' src/ dst/

规则解释

  • --exclude '.*/':递归排除所有隐藏目录(包括嵌套在非隐藏目录里的隐藏子目录)
  • --include '*/':包含所有未被排除的非隐藏目录,保证目录结构可递归复制
  • --exclude '*':排除所有文件,确保不会复制任何文件

模拟验证(可选)

如果需要确认规则效果,可添加--dry-run参数做模拟运行,不会实际修改文件:

rsync -av --dry-run --exclude '.*/' --include '*/' --exclude '*' src/ dst/

内容的提问来源于stack exchange,提问作者dastrobu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:32:21