Dropbox 使用 mklink 命令的细节探讨

by noz

Dropbox

最近经受不住诱惑,用上了 Dropbox——这个星球上最好的文件同步工具。当然,在这个国度我们不可能轻易使用那些最好的互联网产品,每一次的成功背后都要经过艰辛的探索,但这些曲折也无法阻挡一个折腾的心。

使用 Dropbox 的第一个问题恐怕就是连通性的问题,不过它可以通过修改 hosts 得以解决,应该对于那些知道并乐意使用 Dropbox 的人不成障碍。本文关注的是mklink 命令的使用细节。

困惑

mklink 的命令格式为:

mklink /d Link Target

假设我们指定的 Dropbox 目录为 D:\Dropbox,我们希望进行同步的文件夹为D:\Data。对于这种情况,网上有两种写法,即

mklink /d "D:\Dropbox\Data" "D:\Data"

mklink /d "D:\Data" "D:\Dropbox\Data"

这着实令人困惑:如果我们认为 mklink 是上述两个文件夹连接起来,实现了两个文件夹中文件的实时同步,那么上面两种方法应该都正确,但实际中却不是这样。

需求

当然,在解决这个问题之前,我们需要把我们的需求进一步明确:假设我们原来的数据文件全部存储在D:\Data中,我们安装 Dropbox 时新增了一个文件夹 D:\Dropbox,我们希望 Dropbox 可以同步 Data 文件夹中文件,而不影响我们日常的操作习惯,即我们添加、删除、修改文件都是对 Data 文件夹而非D:\Dropbox\Data进行的。

步骤

  1. D:\Data “剪切”至D:\Dropbox中,形成D:\Dropbox\Data目录结构;
  2. 打开“命令提示符”输入mklink /d "D:\Data" "D:\Dropbox\Data"

原因

为什么上面不能使用mklink /d "D:\Dropbox\Data" "D:\Data"“一步到位”实现目录连接呢?

原因是,如果这样的话,实体文件仍然存在于D:\Data,Dropbox 文件夹中只有一个硬盘文件连接,如果对D:\Data进行文件操作,本地机器中的 Dropbox 文件会实现同步并显示网络同步完成,但实际上,网络同步并未进行,这个可以通过查看 Dropbox 网站进行验证。因此,“一步到位”的方法是不可行的。