如何解决rsync时的添加/删除问题?

如何解决rsync时的添加/删除问题?

我在两台不同的计算机上工作,并希望在计算机之间保持某些目录同步。例如,我有一个 ~/scripts 文件夹,里面有很多常用的脚本。如果我在一台计算机上制作新脚本或修改脚本,我想确保更改已同步到另一台计算机。

问题应该很明显:添加或删除文件时会发生什么?

由于 rsync 不知道文件是否已被添加或删除,因此可能会发生错误的行为,并且可能会删除包含大量工作的有价值的文件。

例如,假设我在两台机器上都有文件 1 和 2,然后在机器 AI 上添加文件 3,但出于某种原因我不进行 rsync。当天晚些时候,我在机器 B 上工作并运行 rsync。由于机器B缺少文件3,当我运行rsync时,它会假设B上曾经有3,但我删除了它,所以它会删除机器A上的文件3,可能会破坏很多工作。

每次添加文件后尝试同步是不切实际的,因为我会忙于做事,有时会忘记。

另一种方法是在 rsync 时永远不删除文件,但这会导致不需要的文件激增。在这种情况下,唯一的解决方案是使用某种特殊的删除命令,同时删除两台计算机上的文件。但这里的问题是我的目录包含自动创建的文件,例如编译器和 makefile 自动创建和删除文件的开发目录。如果这些目录在没有删除的情况下进行rsync,那么将会出现文件扩散。

我怎么解决这个问题?

相关内容