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

求助:如何使用BASH实现目录间的文件变更同步?

用Bash实现目录间的变更同步

最佳解决方案:使用rsync命令

rsync是专门用于文件同步的工具,能完美处理文件的新增、修改和删除同步,比手动用cp/mv高效可靠。

步骤1:初始同步(Dir1 → Dir2)

初始状态Dir1包含example1.png、example2.png,Dir2为空,执行以下命令完成首次同步:

rsync -a --delete Dir1/ Dir2/
  • -a:归档模式,保留文件权限、修改时间等元信息,递归处理子目录(如果存在)
  • --delete:删除Dir2中存在但Dir1已不存在的文件,确保两者内容完全一致
  • 注意路径末尾的/:Dir1/表示同步Dir1内部的内容到Dir2,而非把Dir1目录本身复制到Dir2中

步骤2:同步删除操作

当你在Dir1中删除example2.png后,再次执行同样的rsync命令,即可让Dir2同步删除该文件:

rsync -a --delete Dir1/ Dir2/

你之前尝试的命令问题说明

  • cp * ..:仅将Dir1的文件复制到上级目录,未直接同步到Dir2,不符合需求
  • mv *example*.png DIR2:这是移动文件操作,会将Dir1内的文件转移到Dir2,导致Dir1本身丢失文件,并非同步
  • cd DIR1 && rm example2.png && cd ..:该删除操作本身没问题,但后续需要同步工具来让Dir2跟进变更

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:17:08