[cmd]Windows下创建符号链接使用命令mklink

mklink命令在windows系统中用于创建符号链接,属于cmd的内置命令。我们可以通过打开命令提示符来查看mklink的具体用法和语法说明。首先点击“搜索”图标

12,输入“cmd”或“命令提示符”,然后选择“以管理员身份运行”启动命令行工具。接着输入

mklink
并回车,即可显示该命令的详细信息。

mklink命令语法如下:

MKLINK [[/D] | [/H] | [/J]] Link Target
        /D      创建目录符号链接,默认为文件符号链接
        /H      创建硬链接而非符号链接
        /J      创建目录联接点
        Link    指定新符号链接的名称
        Target  指定链接所指向的目标路径(支持相对或绝对路径)

示例:在

C:\Users\WeberZhou\.vscode\extensions
处创建一个指向实际路径
D:\Microsoft VisualStudioCode\VScode Extensions\
的目录符号链接。

mklink /D "C:\Users\WeberZhou\.vscode\extensions" "D:\Microsoft VisualStudioCode\VScode Extensions\"

注意事项:i)各参数之间必须以空格分隔;ii)所有路径建议使用英文双引号包裹;iii)推荐使用绝对路径以避免链接失效。

3. 参数 /D /H /J 的区别说明

参数说明:①

/D
用于创建目录的符号链接(软链接),支持相对或绝对路径;②
/H
用于创建文件的硬链接,属于硬链接类型;③
/J
用于创建目录联接点,也是一种软链接,但仅支持绝对路径;④ 若不指定这三个参数,则默认创建的是文件的符号链接,扩展名为
.symlink

举例:若分别为

C:\data\tmp
创建符号链接
C:
和联接点
C:
,其中
C:
使用相对路径链接,
C:
使用绝对路径链接。当将这两个链接从C盘移动到D盘时,
D:
将失效,而
D:
仍可正常访问原目录。

文件硬链接是指向同一文件数据的多个入口,例如为

C:\data\1.txt
创建硬链接
C:\data\2.txt
,这两个文件名实际指向同一存储位置,删除其中一个不会影响另一个的存在。但硬链接无法跨磁盘分区使用。

常用参数为

/D
/J
,两者主要区别如下:

区别一:

  • /D
    创建的是目录符号链接(类似快捷方式),支持相对路径;
  • /H
    创建的是硬链接,仅适用于文件;
  • /J
    创建的是目录联接点,必须使用绝对路径。

区别二:复制与移动行为不同

  • 复制
    /D
    /J
    生成的链接文件夹时,都会生成目标目录内容的副本,变为普通文件夹;
  • 剪切
    /D
    创建的链接到其他位置,链接依然有效,原链接消失,源目录不受影响;
  • 剪切
    /J
    创建的链接后,会在新位置生成一个普通文件夹,原目录中的所有内容被迁移过去,原目录变为空,但原链接和联接点仍然存在,只是内容已被清空。