OneDrive 在国内的同步速度还是很不错的,但存在一个问题,它不像其他网盘一样可以自由选择同步任意位置的文件夹。比如我想把 D 盘的 Dir 文件夹同步,就必须把 Dir 文件夹移动到系统的 OneDrive 文件夹中,实际操作中有很多不便。
好在可以通过创建目录符号链接的方法来解决,方法如下:
创建目录符号链接开始同步
- 使用系统管理员权限打开 cmd
- 比如 OneDrive 文件夹位于 C:\Users\OneDrive,我想把 D:\test 文件进行同步,输入如下命令:
mklink /d C:\Users\OneDrive\test D:\test
意即在 OneDrive 目录下创建一个 D:\test 的目录符号链接,它也是一个文件夹,名字叫 test,空间占用为 0,可以理解为一个“入口” - 后续你在 D:\test 文件夹中的任何操作都会自动得到同步。
修改目录符号链接目标文件夹地址
Windows 尚不能提供直接修改的手段,可以尝试用如下方法解决,修改前为避免错误,请先退出 OneDrive 同步程序。
- 手动删除旧目录符号链接,再创建同名新目录符号链接。
-
下载第三方 Windows Link Shell Extension 获得图形化界面进行修改。
Hard link, Symbolic link 以及 Junction
Hard link 和 Symbolic link 可以类比 Linux 中的软硬链接概念加以理解。比较难以辨析的就是 Symbolic link 和 Junction 的区别,简而言之,它们在本地计算机几乎无差别,但涉及到访问远程计算机时就出现差别了。
假设一台计算机叫 Alice 你创建了一个 junction point c:\myjp
和一个 symbolic link c:\mysymlink
,两个目录都指向 c:\targetfolder
。当你使用计算机 Alice 时,它们几乎没有差别,但当你使用另一台计算机 Bob 访问时
对于 junction point
\\Alice\c$\myjp
指向 \\Alice\c$\targetfolder
但对于 symbolic link
\\Alice\c$\mysymlink
指向 \Bob\c$\targetfolder`