用过 Linux 的人应该都熟悉软硬链接,但某些人可能还不知道 Windows 中也包含了这项功能。前几天在知乎专栏看到有人利用类似原理转移iTunes的备份文件夹节省C盘空间,索性也汇编篇文章介绍这个功能。

个人目前使用它转移C盘Users文件夹、 Outlook产生的本地邮箱缓存以及OneNote的本地缓存。

MKLINE简介

MKLINK包含符号链接、硬链接和软链接,具体啥差别我也没研究。简单讲,可以用MKLINK文件文件夹建立“高级”的快捷方式。

MKLINK 的基础命令如下:

  • 不加参数使用表示链接源、目标都是单个文件。这个命令会让 D 盘多出 BOOTMGR 文件,大小为 0 字节,但编辑时确是 C:\BOOTGR 的内容。(系统启动文件,不要真编辑里面的内容了……)
1
mklink "D:\BOOTMGR C:\BOOTMGR"
  • /j 参数表示链接源、目标都是文件夹。这样做可以在你的 D 盘创建一个 Windows 文件夹,里面的内容与 C:\Windows 一模一样,不占空间(显示为与 C:\Windows 一样大)且修改也会及时同步到 C 盘。如果能把 C 盘隐藏的话,你完全可以说 Windows 安装在 D 盘。
1
mklink /j "D:\Windows C:\Windows"

日常操作知道这两个命令就够了,/d/j的区别未知,个人测试日常使用似乎没啥本质差别。

MKLINK创建的“高级”快捷方式和“普通”快捷方式的比较如下:

  1. 快捷方式无论目标是文件还是目录,生成的都是新的有内容的 .lnk 文件,打开时是打开的源路径,直接编辑则是编辑 .lnk 文件的内容,源文件/目录不受影响。MKLINK 生成的文件和目录都是 0 字节,但访问时仍然是新文件/目录的路径,且编辑操作编辑的是源文件/目录;原理相当于网盘的同步,只不过不通过网络、不占用空间。
  2. 删除两者生成的目标文件/目录都不会对源文件/目录产生影响。但删除源文件/目录后,新路径都不再可用。