利用MKLINK 命令保护、节省硬盘
用过 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
创建的“高级”快捷方式和“普通”快捷方式的比较如下:
- 快捷方式无论目标是文件还是目录,生成的都是新的有内容的
.lnk
文件,打开时是打开的源路径,直接编辑则是编辑.lnk
文件的内容,源文件/目录不受影响。MKLINK
生成的文件和目录都是 0 字节,但访问时仍然是新文件/目录的路径,且编辑操作编辑的是源文件/目录;原理相当于网盘的同步,只不过不通过网络、不占用空间。 - 删除两者生成的目标文件/目录都不会对源文件/目录产生影响。但删除源文件/目录后,新路径都不再可用。