Intro
mklink 可以像创建快捷方式一样建立文件或文件夹的链接。它有效避免了简单的copy paste带了注册表??问题, 注册表在启动程序的时候,会通过mklink在旧文件夹留有的链接前往新的地址启动程序。
而Freemove正是一款实现了mklink可视化操作的保受欢迎的小众软件。
Precondition 1 - cmd instead of PowerShell
PowerShell启动,会出现如下情况:
解决办法是:在PowerShell中输入
cmd来启动并自动进入cmd,之后再输入mklink才可以得到系统提示。
PowerShell扩展函数
Creating a Symbolic Link using PowerShell | Learn Powershell | Achieve More (learn-powershell.net)
Precondition 2 - admin privilege
正常情况下,mklink 是可以成功执行的。但不能没有不出bug的时候,可能出现没有权限的错误。使用admin启动cmd,可以解决问题。
How to use?
| 使用方式 | 适用于 | 快捷方式小箭头 |
|---|---|---|
| 不带参数 | 文件 | 有 |
| /D | 文件夹 | 有 |
| /J | 文件夹 | 有 |
| /H | 文件 | 无 |
系统已经给出提示,我们来一个一个看这些参数。
/D & /J
-
相同:
- Soft
对源文件创建软链接,效果相当于创建快捷方式,但一旦源目录名修改,快捷方式即失效。
- Copy
均生成源目录的副本,变为一般文件夹
-
区别:
- Path
/D是symbolic link,支持相对路径
/J是junction,支持绝对路径
- Cut/Move
/D 生成的目录被移动,保持旧连接,对源目录无影响 (更像一种快捷方式)
/J 生成的目录被移动,产生一个新的副本文件夹,源文件夹内容全部移动到新的副本文件夹中,源文件夹内容清空,但是源文件夹仍以快捷方式仍存在,而被移动的文件夹也依旧存在存储中
mklink "目标文件夹" "源文件夹"
之后源文件夹中的内容就会迁移到目标文件夹中,源文件夹出现快捷方式小标。
/H
只能对文件来创建硬链接,相当于拷贝,占用两份相同存储,且二者之间存在映射,修改任意文件都会反映到原始文件,即使将文件名修改后,再继续修改文件内容,依然会同步修改。