我有两台 Ubuntu 机器,一台笔记本电脑和一台台式机。我想要做的是在两台机器的路径“path1”和“path2”处创建一个文件夹。我想在两个文件夹连接到同一个局域网时(台式机通过以太网,笔记本电脑通过 WLAN)在它们之间设置同步。例如,如果我创建文件 path1/x,它也会在 path2 中显示为 path2/x。
有什么办法可以做到这一点?[如果删除同步不起作用,我必须同时从两个目录中手动删除一个文件,那也没关系]
答案1
[回答我自己的问题,因为我找到了一个很好的方法来做到这一点]
使用unison
宾夕法尼亚大学的 Benjamin Pierce 开发的工具。
假设你有两个目录,
/home/user/Documents/dirA/
和/home/user/Documents/dirB/
要同步这两者,您可以使用:
~$unison -ui text /home/user/Documents/dirA/ /home/user/Documents/dirB/
在输出中,unison
将显示每个目录和文件不同的在您要求同步的两个目录中。它会建议在初次运行时进行附加同步(在两个位置复制丢失的文件),然后在您的机器上创建并维护同步树,在后续运行时它将实现真正的同步(即,如果您从中删除文件.../dirA
,它也将从中删除.../dirB
。您还可以比较每个更改,并可选择向前或者撤销在两个目录之间进行同步。
或者,要启动图形界面,只需-ui text
从命令中删除该选项,尽管我发现cli
使用起来更简单、更快。
更多内容:GitHub 上的 Unison 文档。
答案2
查看此教程如何使用 rsync 同步文件夹。
干杯