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

如何用rsync将源目录内容同步至异名目标目录并清理冗余文件

解决方法

直接使用带尾部斜杠的源路径即可满足需求,命令如下:

rsync --delete -ra /mnt1/src/ /mnt2/dest

关键说明

  • 源路径/mnt1/src/末尾的斜杠是核心:它告诉rsync同步src目录内部的所有内容到目标目录/mnt2/dest,而不是把src目录本身复制到dest下,这样就能保证/mnt1/src/foo/bar对应同步到/mnt2/dest/foo/bar。
  • --delete参数会对比源目录和目标目录,自动删除/mnt2/dest中不存在于/mnt1/src的冗余文件/目录(比如你创建的dummy文件)。
  • -ra组合参数:-r递归处理子目录,-a归档模式(保留文件权限、时间戳、软链接等属性),完全符合每日备份的需求。

为什么之前的命令不行

  • 使用/mnt1/src/*(D):zsh的通配符会展开成src下的所有文件/目录,但rsync此时是把这些展开项作为独立源来同步,无法识别整个src目录的完整结构,因此不会处理dest根目录下的冗余文件。
  • 使用/mnt1/src不带斜杠:rsync会将整个src目录复制到dest下,导致生成/mnt2/dest/src/...的嵌套结构,不符合你的路径要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:02:06