云盘同步命令之mklink

本文以Onedrive为例, 介绍Windows上进行云盘同步的命令mklink.

mklink

mklink是windows系统下创建符号链接的命令, 他可以像创建快捷方式一样创建文件或目录的链接, 但是这两者有着显著的区别.
首先在命令(需要管理员权限)行下执行mklink命令, 有三种模式, /D, /H/J

mklink

符号链接: 其也被称作软链接, 是一类特殊的文件. 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用. 注意, 符号链接是文件引用.

/d: 创建目录符号链接, 默认为目录, 文件则无法打开

mklink /d softlinkD sourceDict

硬链接: 其与软链接相对, 是一个文件的复制, 当修改一个文件时, 其余所有与之进行硬链接的文件均得到修改. 删除一个时, 其余不会改变. 在移动链接文件时, 如果在同一盘符上进行移动, 可以继续保持链接, 否则无法维系链接, 而且在不同盘符上无法建立硬链接.(在C盘创建的所有硬链接, 如果将其移动至其他盘, 则链接中断.)

/h: 创建硬链接, 其只能针对文件, 无法针对文件夹, 当Target为文件夹时会拒绝访问.

mklink /h hardlink.txt source.txt

/j: 创建目录联接, 默认为目录, 文件则无法打开. 与/d的区别是, 使用/d命令创建的链接可以复制剪切与移动, 使用/j命令创建的无法剪切和移动. 本命令常用来进行Onedrive等云盘的同步.

mklink /j junction sourceDict

各个命令的具体区别如图所示(其中图中第一行/j/d关于删除链接的操作是不对的, Junction与Symbolic link一样, Target remains unchanged.). 本图来自维基百科

mklink

Onedrive 同步

登录好自己的Onedrive, 并设置本地文件夹. 使用下面的命令将Onedrive中的文件夹创建一个Junction link至本地文件夹

mklink /j D:\aaa D:\OneDrive\funnyphd\source

其中, D:\OneDrive\funnyphd\source为Onedrive在本地的文件夹(源文件), D:\aaa为链接名称. 我们可以通过直接修改aaa目录下的文件来实现文件的自动上传. 如果换台机器, 需要重做上面的操作, 即可实现本地文件与云盘文件同步.