Windows 中的 mklink 命令

发布于 2020-08-08  366 次阅读


不带参数

不带参数的 mklink 命令可以为文件创建符号链接。当源路径是目录时,不带参数的 mklink 不会报错,但是实际产生的符号链接不可用。在 cmd 中使用 dir 列出当前目录的文件列表时,符号链接显示为 SYMLINK,同时在文件名后以方括号表示链接的源地址。

D:\test>mklink source_link.txt source.txt
为 source_link.txt <<===>> source.txt 创建的符号链接

D:\test>mklink source_link source
为 source_link <<===>> source 创建的符号链接

D:\test>dir
 驱动器 D 中的卷是 Data
 卷的序列号是 22FA-F6AC

 D:\test 的目录

2018/12/10  16:18    <DIR>          .
2018/12/10  16:18    <DIR>          ..
2018/12/10  16:17    <DIR>          source
2018/12/10  16:17                 0 source.txt
2018/12/10  16:18    <SYMLINK>      source_link [source]
2018/12/10  16:18    <SYMLINK>      source_link.txt [source.txt]
               3 个文件              0 字节
               3 个目录 241,024,643,072 可用字节

不带参数的 mklink 创建的符号链接,展现在 Windows 资源管理器中的样式与普通的快捷方式没有两样——在图标的左下角有一个小箭头。不过,在资源管理器中,符号链接的文件类型是 .symlink。对于源路径是目录的情况,图标显示为一块白板。

删除不带参数的 mklink 创建的符号链接,不会影响源路径指向的文件。删除不带参数的 mklink 创建的符号链接指向的源文件,访问符号链接时无法访问。

参数 /D

参数 /D 版本的 mklink 命令可以为目录创建符号链接。当源路径是文件时,不带参数的 mklink 不会报错,但是实际产生的符号链接不可用;访问时会提示「目录名称无效」。在 cmd 中使用 dir 列出当前目录的文件列表时,符号链接显示为 SYMLINK,同时在文件名后以方括号表示链接的源地址。

D:\test>mklink /D source_link source
为 source_link <<===>> source 创建的符号链接

D:\test>mklink /D source_link.txt source.txt
为 source_link.txt <<===>> source.txt 创建的符号链接

D:\test>dir
 驱动器 D 中的卷是 Data
 卷的序列号是 22FA-F6AC

 D:\test 的目录

2018/12/10  16:27    <DIR>          .
2018/12/10  16:27    <DIR>          ..
2018/12/10  16:17    <DIR>          source
2018/12/10  16:17                 0 source.txt
2018/12/10  16:27    <SYMLINKD>     source_link [source]
2018/12/10  16:27    <SYMLINKD>     source_link.txt [source.txt]
               1 个文件              0 字节
               5 个目录 241,024,618,496 可用字节

参数 /D 版本的 mklink 命令创建的符号链接,展现在 Windows 资源管理器中的样式与普通的快捷方式没有两样——在图标的左下角有一个小箭头。不过,在资源管理器中,符号链接的文件类型是「文件夹」。对于源路径是文件的情况,图标显示为空目录的样式。

删除参数 /D 版本的 mklink 命令创建的符号链接,不会影响源路径指向的文件。删除参数 /D 版本的 mklink 命令创建的符号链接指向的源文件,访问符号链接时无法访问;提示「引用了一个不可用的位置」。

参数 /H

参数 /H 版本的 mklink 命令可以为文件创建硬链接。当源路径是目录时,不带参数的 mklink 会报错「拒绝访问」。在 cmd 中使用 dir 列出当前目录的文件列表时,硬链接的样式与正常文件没什么不同。

D:\test>mklink /H source_link.txt source.txt
为 source_link.txt <<===>> source.txt 创建了硬链接

D:\test>mklink /H source_link source
拒绝访问。

D:\test>dir
 驱动器 D 中的卷是 Data
 卷的序列号是 22FA-F6AC

 D:\test 的目录

2018/12/10  16:38    <DIR>          .
2018/12/10  16:38    <DIR>          ..
2018/12/10  16:35    <DIR>          source
2018/12/10  16:17                 0 source.txt
2018/12/10  16:17                 0 source_link.txt
               2 个文件              0 字节
               3 个目录 241,024,421,888 可用字节

参数 /H 版本的 mklink 命令创建的硬链接,展现在 Windows 资源管理器中的样式与源文件一致。

删除参数 /H 版本的 mklink 命令创建的硬链接,不会影响源路径指向的文件。删除参数 /H 版本的 mklink 命令创建的硬链接指向的源文件,也不会影响硬链接。只有当一个文件的所有硬链接都被删除时,文件才被真正删除。

参数 /J

参数 /J 版本的 mklink 命令可以为目录创建联接。当源路径是文件时,不带参数的 mklink 不会报错,但是实际产生的联接不可用;访问时会提示「目录名称无效」。在 cmd 中使用 dir 列出当前目录的文件列表时,联接显示为 JUNCTION,同时在文件名后以方括号表示链接的源地址的绝对路径。.

D:\test>mklink /J source_link.txt source.txt
为 source_link.txt <<===>> source.txt 创建的联接

D:\test>mklink /J source_link source
为 source_link <<===>> source 创建的联接

D:\test>dir
 驱动器 D 中的卷是 Data
 卷的序列号是 22FA-F6AC

 D:\test 的目录

2018/12/10  16:43    <DIR>          .
2018/12/10  16:43    <DIR>          ..
2018/12/10  16:35    <DIR>          source
2018/12/10  16:41                 2 source.txt
2018/12/10  16:43    <JUNCTION>     source_link [D:\test\source]
2018/12/10  16:43    <JUNCTION>     source_link.txt [D:\test\source.txt]
               1 个文件              2 字节
               5 个目录 241,024,319,488 可用字节

参数 /J 版本的 mklink 命令创建的联接,展现在 Windows 资源管理器中的样式与普通的快捷方式没有两样——在图标的左下角有一个小箭头。不过,在资源管理器中,联接的文件类型是「文件夹」。对于源路径是文件的情况,图标显示为空目录的样式。

删除参数 /J 版本的 mklink 命令创建的联接,不会影响源路径指向的文件。删除参数 /J 版本的 mklink 命令创建的联接指向的源文件,访问联接时无法访问;提示「引用了一个不可用的位置」。

0 0 投票数
文章评分