使用rsync 删除目标目录中比源目录多出的文件,可以借助 --delete 参数来实现。
rsync -avz --delete-delay/path/to/source/ /path/to/target/
命令解释:
rsync: 调用 rsync 命令。
-a: 保留文件属性(如权限、时间戳等),进行归档模式同步。
-v: 详细输出(verbose),显示同步过程的详细信息。
-z: 通过压缩提高传输效率,对于网络同步特别有用。
--delete-delay: 这是关键参数,指示 rsync 在同步完成后批量删除目标目录中所有不在源目录中的文件和目录。
实例:
目标目录是之前同步的仓库源包,源目录是最新才同步的仓库源包,通过下面命令可以把/mnt/仓库源2023/服务/v10sp2/ks10sp2-updates/ks10sp2-updates/Packages/更新到和源目录一致,且删除源目录中不存在的目录和包
rsync -avz --delete-delay /var/www/html/packages/x86_64/v10sp2-x86/ks10-adv-updates/Packages/ /mnt/仓库源2023/服务/v10sp2/ks10sp2-updates/ks10sp2-updates/Packages/
备注:源和目标路径最后必现加/,不然同步异常