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

如何正确配置rsync排除规则?同步远程指定子目录遇异常

解决rsync同步指定子目录的问题

你的问题出在rsync过滤规则的顺序和逻辑上,当前的--include inbox仅能匹配名为inbox的条目,但无法阻止同步用户主目录下的其他内容。要实现只同步每个用户目录下的inbox子目录,排除所有其他文件/目录,需要调整过滤规则的顺序与内容:

正确的命令配置

PARTNER='user1,user2,user3'
rsync -rv \
  --exclude='*' \
  --include='*/inbox/' \
  --include='*/inbox/**' \
  --exclude='.?*' \
  "$REMOTE:$REMOTEHOME/{$PARTNER}" inboxes/

规则解释

  • --exclude='*':先默认排除所有内容,这是核心前提,确保只有明确被include的内容才会被同步
  • --include='*/inbox/':允许匹配每个用户目录下的inbox目录本身(末尾的/确保仅匹配目录,而非同名文件)
  • --include='*/inbox/**':允许同步inbox目录下的所有文件和子目录(**表示递归匹配目录内所有层级的内容)
  • --exclude='.?*':最后排除所有隐藏文件/目录,保留你原本的需求

额外说明

如果远程用户的inbox目录是隐藏目录(比如.inbox),只需将规则里的inbox替换为.inbox即可。另外要注意,rsync的过滤规则是从上到下依次生效,必须把--exclude='*'放在最前面,否则后续的include规则无法生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:33:09