mklink简介
Linux 下有一个叫符号链接的东东,是 ln 这个链接命令,mklink 和 ln 的功能几乎一样。在xp系统下,junction命令要用微软开发的小程序 junction.exe实现,从http://live.sysinternals.com/可以下载。现在Windows Vista之后的系统自带了mklink的功能。创建符号链接不仅可以当作快捷方式使用,最重要的是重定向链接符可以被程序读取然后重定向真正的位置,这是快捷方式无法做到的。
win+r -> cmd -> mklink:
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件符号链接。
/H 创建硬链接,而不是符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径(相对或绝对)。
默认情况:
- 文件的符号链接,如没有参数指定,则创建文件的符号链接,删除文件链接不会影响目 标文件,且创建链接时允许目标文件不存在;
- 目录的符号链接(SYMLINKD) /D该参数可以创建目录的符号链接,删除目录链接不 会影响目标目录,且创建链接时允许目标目录不存在;
- 目录的软链接(JUNCTION) /J 该参数可以创建目录的软链接(联接),作用基本和符号链接类似,NT6系统的用户目录就是以这种形式存在的;
- 文件的硬链接 /H 该参数可以创建文件的硬链接,即一个文件的多个别名,NT6系统WinSXS目录下的大部分文件是以这个形式存在的;
更多阅读:
mklink使用简介
mklink的参数j和参数d在实际应用中的区别是什么?
mklink的应用
根据上面的介绍大家肯定知道我想干什么了,对!就是利用mklink为网盘加上多目录同步的功能。下面以Dropbox备份某软件的配置为例,其他的网盘都类似:
网盘的同步文件夹是E:/u/Dropbox
,需要同步的文件夹是D:/soft1/config
我们使用下面的命令:
mklink /D "E:/u/Dropbox/mydata" "D:/soft1/config"
这样E:/u/Dropbox/mydata就指向D:/mydata,相当于两个访问接口,删除E:/u/Dropbox/mydata
不会影响到D:/soft1/config
,反之则不行。按照这种方法就可以让Dropbox等网盘部分不同的文件夹了。
但是现在也有个问题,你会发现只有Dropbox第一次启动或者重启时会同步,你的修改不能马上被Dropbox捕获到,Dropbox可以使用系统托盘菜单中的暂停和恢复同步来手动让Dropbox对修改进行捕获,有些网盘如酷盘就没有这个功能,只能利用重启软件来同步,很不方便。
其实这里还有个方法就是:我们反着来,将真实文件夹(如config
)放在Dropbox中,在D:/soft1/
中创建软连接, 如命令:
mklink /D "D:/soft1/config" "E:/u/Dropbox/mydata"
这样的缺点就是其实根本没有改进网盘不支持多目录备份的问题,而是和系统开玩笑而已,但是这样确实很方便,我目前基本使用这种方法。
实例
举几个我使用mklink的例子:
- 备份hosts
- 备份一些软件的配置,如Notepad++,vim配置…
- 备份分散的代码(不推荐,推荐git来备份)
- wamp中www下的目录分散到不同地方
- …