rsync 删除所有与目标同步的源文件

rsync 删除所有与目标同步的源文件

我用它rsync --remove-source-files --ignore-existing src/ me@server:dest/来将新文件上传到远程服务器,而不会破坏/更新任何现有文件。此操作后,所有新上传的文件都将被删除。

我还希望从中删除两端已经相同的文件src/。也就是说,剩下的文件src/应该是由于不同的服务器上已存在副本。

使用案例:将文件从本地同步到服务器,但在存在合并冲突的操作上“失败”(手动解决)。成功解决的所有内容都会被自动删除。

如果有必要,可以使用多个命令解决这个问题(例如现有的上传命令,一个单独的命令来查找相同的文件并从本地删除)

答案1

好问题。rsync 实际上只是用于“单向”镜像。对于您的场景,请考虑使用 Unison(请参阅https://www.cis.upenn.edu/~bcpierce/unison/) 是一个双向同步工具。它可以很好地处理冲突,但如果您只想以一种方式同步,请查看 --force 或 --prefer 选项。

如果你使用的是 Ubuntu,请安装 unison。

相关内容