我的src
文件夹是我的本地笔记本电脑。
我有一个dest
用于备份的文件夹(并且已安装 NAS),但由于历史原因,我有时会将该dest
文件夹用于我现在使用的文件夹src
(请耐心等待)。
结果是我有例如
src/docs/2021/january.pdf
尽管
dest/docs/2021/february.pdf
我只是碰巧跑rsync -av src/ dest
了,现在的结果是
src/docs/2021/january.pdf
src/docs/2021/february.pdf
dest/docs/2021/february.pdf
我想要实现的是 2 完全同步,因此两者都有 1 月和 2 月的文件(换句话说,dest
文件也同步到src
)。
我怎么做?
你必须做两个 rsync,每个方向一个。
rsync
除非您能保证永远不会删除任何文件,否则您不能使用这种情况。考虑两棵树,
A
和B
。B
因为它可能是需要复制到A
.A
因为它可能刚刚创建并需要复制回B
.Now
A
和B
同步,与A
now in 中的所有内容B
以及B
now in 中的所有内容同步A
。假设您要从
A
. 现在重复同步,注意删除的文件重新出现在A
. 这是因为它仍然存在B
并被复制,就好像它是一个新文件一样。一种解决方案是使用不同的工具。我使用
unison
(也是https://www.cis.upenn.edu/~bcpierce/unison/)取得了很好的效果,它是作为双向同步工具创建的。(周围还有其他一些工具,但我不记得它们了。)同步两棵树
A
,B
就像使用这个命令一样简单有一些选项可用于确定在双方都更新同一文件时如何采取行动等。