前言

很久以前就知道windows中这么一种快捷方式,不同于普通的快捷方式,是一种可以和源文件发挥相同功效作用的“快捷方式”,但是一直未深入探索使用过,现在想起来或许这种快捷方式可以为我们的工作带来很大便利。
部分参考资料:
mklink_百度百科
Windows硬链接 软链接 符号链接 快捷方式
Windows上创建符号链接的完整指南
Windows下mklink使用, 硬链接, 软链接和快捷方式的区别
windows mklink /d /h /j 精讲
Vista下类型为JUNCTION和SYMLINK的文件夹有什么区别

实践

看完许多资料,还是对windows下的mklink命令感到有些迷惑,我觉得还是自己实践下比较好。

mklink一共只有3种链接,针对3种方式我分别对文件和文件夹进行如下实验。

文件测试
mklink /d D:\d.txt C:\Users\ZXIN\Desktop\src.txt
mklink /h D:\h.txt C:\Users\ZXIN\Desktop\src.txt
mklink /h C:\Users\ZXIN\Desktop\opencv\h.txt C:\Users\ZXIN\Desktop\src.txt
mklink /j D:\j.txt C:\Users\ZXIN\Desktop\src.txt

文件夹测试
mklink /d D:\d C:\Users\ZXIN\Desktop\src
mklink /h D:\h C:\Users\ZXIN\Desktop\src
mklink /h C:\Users\ZXIN\Desktop\opencv\h C:\Users\ZXIN\Desktop\src
mklink /j D:\j C:\Users\ZXIN\Desktop\src

占用空间测试
mklink /d D:\bigd "G:\ONE PIECE\820-866"
mklink /d G:\bigd "G:\ONE PIECE\820-866"
mklink /h G:\bigh.zip "G:\NPUBits\偷星九月天.zip"
mklink /j D:\bigj "G:\ONE PIECE\820-866"
mklink /j G:\bigj "G:\ONE PIECE\820-866"

以下是实验结果:

项目符号链接硬链接目录链接
参数/D/H/J
管理员权限需要不需要不需要
文件不支持支持不支持
文件夹支持不支持支持
空间不占用不占用(理应占用)不占用
跨磁盘可以不可以可以
删除或移动源文件(夹)无法访问存在无法访问
移动链接秒移,整个文件夹被移动秒移跨盘的话会发生复制行为,原地遗留一个空文件夹

和网上的图进行比较:

奇怪的地方来了,在我测试中三种方式都是不占用空间的,硬链接应该是会占用空间的才对,我检查占用空间的方式是右键磁盘查看可用空间,但是三种方式都不改变磁盘剩余空间,右键查看文件的占用空间三种方式也都是一样的,可能这种查看方式并不科学。

总结

  • 与其叫快捷方式,其实这三种方式更像是文件共享,共同点都是文件的改动都是同步的,但是链接文件或目录的删除不影响源文件。
  • 至于区别首先就是硬链接源文件的删除不影响链接文件,但是硬链接只能链接文件不能链接文件夹,而另两种方式只能链接文件夹,所以硬链接很适合备份数据。
  • 如果什么参数都不加,创建的是文件符号链接。
  • 另两种文件链接方式似乎没有什么大差别,/D需要管理员权限,在移动链接文件夹时是整体移动的,不会留下一个空文件夹。需要注意的是虽然删除目录链接的目录本身不会影响源文件,但是删除删除目录下的文件会导致同步删除。

应用

  • 除了用硬链接备份数据外,因为这种创建链接的方式几乎是瞬间完成的,可以和OneDrive云盘配合使用,也可用作程序间的数据共享。
  • 一个有意思的技巧,如果想使硬链接跨盘符使用该怎么办?可以使用软连接和硬链接相结合的方式,即在一个可以跨盘连接的软链接里创建硬链接,这样硬链接就会同步到另一个盘里。
  • 另外如果每次都用命令行的方式进行操作未免太过极客了,刚好在参考文件里找到一个软件,直接将该功能集成到右键菜单里了,我觉得很赞。

软件下载地址:http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html

最后修改:2019 年 12 月 28 日 10 : 09 PM