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

如何让rsync仅同步根目录下新增的文件夹与文件?

解决方案

可以通过rsync的包含/排除规则实现仅同步新增的顶层备份文件夹,同时保留硬链接和镜像删除的核心需求,命令如下:

rsync -a -H --delete --progress --stats --human-readable \
  --include='backup-*/' \
  --include='backup-*' \
  --exclude='*' \
  --prune-empty-dirs \
  /source/ /target

参数说明与逻辑解析

  1. --include='backup-*/':优先匹配所有以backup-开头的顶层文件夹,确保rsync识别并处理这些目录项。
  2. --include='backup-*':补充匹配所有以backup-开头的非目录项(如果源目录存在这类文件),避免遗漏。
  3. --exclude='*':排除所有未被上述规则匹配的内容,限定rsync仅关注目标备份文件夹。
  4. --prune-empty-dirs:自动清理目标目录中因删除操作产生的空文件夹,保持结构整洁(可选但推荐)。
  5. 保留核心需求参数:
    • -H:完整保留新增备份文件夹内的硬链接结构,不会重复复制文件。
    • --delete:同步源目录的删除操作,移除目标中存在但源已删除的backup-开头文件夹,适配备份转存改名的场景。

为什么能解决耗时问题?

该规则让rsync仅遍历源目录的顶层内容,不会深入已存在的backup-文件夹内部检查文件变化——对于目标已存在的同名称文件夹,rsync直接跳过递归检查,仅处理新增的文件夹,大幅缩短同步时间。

对比--ignore-existing的优势

--ignore-existing仅跳过已存在的文件,但仍会递归遍历所有已存在的文件夹内部,无法从根本上减少检查耗时。本方案通过规则直接限定rsync的处理范围,完全避免了对已有备份文件夹内部的遍历操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:22:36