镜像两个文件:rsync 与 cp

镜像两个文件:rsync 与 cp

我希望我的 Dropbox 文件夹中有 .emacs 文件的副本,但我还想以自动方式获得此副本,我的意思是每次我在主目录中更改 .emacs 时,我希望它立即在 Dropbox 目录中更新(这种必要性是因为我希望 .emacs 在我的 Windows 和 Ubuntu 分区中相同,我认为 Dropbox 是一个很好的工具)。首先我使用了简单的:

$ cp .emacs Dropbox/.emacs

然后我尝试使用 rsync(或 gsync),效果不错,但是对于这个非常简单的备份,我无法理解 rsync 和 cp 之间的区别。事实上,即使我在 rsync 文件中激活了选项 RSYNC_ENABLE=true,每次我修改家中的 .emacs 时,我都必须运行命令 rsync(或使用 gsync),作为 cp,而不会自动运行。我怎样才能自动运行它?

我可能遗漏了 rsync 的一些最基础的知识。

感谢您的帮助

答案1

您误解了它的rsync作用。与名称所暗示的不同,它实际上不会自行同步任何内容。它的工作原理几乎与 相同cp,只是当它在目标上遇到相同的文件时,它只会在文件发生变化时才更新它。这在您通过网络复制时很有用,因为它可以节省带宽。但是,它不会监视文件。

对于您来说,更好的解决方案是将.emacs目录移动到~/Dropbox/.emacs,并建立~/.emacs指向它的符号链接:

$ mv .emacs ~/Dropbox
$ ln -s ~/Dropbox/.emacs .emacs

那么您不需要任何本地同步。

答案2

最好的答案是使用符号链接。只需执行以下操作一次即可

ln -sn ~/.emacs ~/Dropbox/.emacs

它会在 Dropbox 文件夹中创建一个指向 ~/.emacs 的链接。dropbox 会将此视为文件并进行同步。您对 .emacs 所做的每项更改都会自动由 dropbox 同步

相关内容