当连接到同一 LAN 时,在两台 Ubuntu 计算机之间同步特定文件夹

当连接到同一 LAN 时,在两台 Ubuntu 计算机之间同步特定文件夹

我有两台 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 同步文件夹

干杯

相关内容