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

Linux下同步文件夹:如何保留最后修改文件避免覆盖

用rsync实现双向保留最新文件的同步方案

嗨,这个问题我之前折腾rsync的时候也碰到过!默认的rsync -av是单向从源到目标同步,不管目标文件是不是更新,都会直接覆盖,确实不符合你的需求。下面给你两种场景的解决方案:

单向同步:只把源文件夹的新文件同步到目标,不覆盖目标的更新文件

如果你只是想从文件夹A同步到B,但要保留B里比A新的文件,只需要给命令加个-u(也就是--update)参数就行:

rsync -avu /path/to/folderA/ /path/to/folderB/

-u的作用就是让rsync自动跳过目标文件夹里最后修改时间比源文件晚的文件,完美避免覆盖更新的内容。

双向同步:两边互相同步,保留各自最新的文件

如果你的需求是让两个文件夹完全同步,不管文件在A还是B,只要是最新版本就保留并同步到另一边,那需要执行两次rsync命令,分别双向同步:

# 先把A中比B新的文件同步到B
rsync -avu /path/to/folderA/ /path/to/folderB/
# 再把B中比A新的文件同步到A
rsync -avu /path/to/folderB/ /path/to/folderA/

跑完这两条命令,两个文件夹里的所有文件都会是各自最新的版本,两边的更新内容都不会丢失。

几个小提醒

  • 路径末尾的/别漏:如果源路径最后加了/,rsync会把源文件夹里的内容同步到目标文件夹;如果不加,会把源文件夹整个复制到目标文件夹下面,别搞错了!
  • -a参数已经包含了权限、所有者、时间戳这些属性的同步,不用额外加其他参数;
  • 千万不要加--delete参数,不然会删掉两边独有的文件,不符合你保留文件的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:15:34