mklink 命令用于创建符号连接,有三个选项,/D
、/J
、/H
。
/D 创建目录符号链接。默认为文件符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接
先使用三个参数分别创建文件、文件夹试试
思路:创建一个分本和目录,然后分别使用 D、J、H 三个参数来创建目录链接和文件链接。
创建一个文本和目录
E:\test>echo > test_txtfile.txt
E:\test>mkdir test_dir
使用D选项创建
E:\test>mklink /D D_dir test_dir
为 D_dir <<===>> test_dir 创建的符号链接
E:\test>mklink /D D_txtfile.txt test_txtfile.txt
为 D_txtfile.txt <<===>> test_txtfile.txt 创建的符号链接
使用J选项创建
E:\test>mklink /J J_dir test_dir
为 J_dir <<===>> test_dir 创建的联接
E:\test>mklink /J J_txtfile.txt test_txtfile.txt
为 J_txtfile.txt <<===>> test_txtfile.txt 创建的联接
使用H选项创建
E:\test>mklink /H H_dir test_dir
拒绝访问。
E:\test>mklink /H H_txtfile.txt test_txtfile.txt
为 H_txtfile.txt <<===>> test_txtfile.txt 创建了硬链接
创建结果
E:\test>dir
驱动器 E 中的卷是 文档
卷的序列号是 AA08-BBAA
E:\test 的目录
2024/01/25 15:27 <DIR> .
2024/01/25 15:20 <DIR> test_dir
2024/01/25 15:20 21 test_txtfile.txt
2024/01/25 15:22 <SYMLINKD> D_dir [test_dir]
2024/01/25 15:23 <SYMLINKD> D_txtfile.txt [test_txtfile.txt]
2024/01/25 15:25 <JUNCTION> J_dir [E:\test\test_dir]
2024/01/25 15:25 <JUNCTION> J_txtfile.txt [E:\test\test_txtfile.txt]
2024/01/25 15:20 21 H_txtfile.txt
2 个文件 42 字节
6 个目录 403,161,616,384 可用字节
E:\test>
UI显示效果
分析总结
-
/D
生成的叫符号链接(SYMLINKD),/J
生成的叫联接(JUNCTION),这两种都是软链接 -
不管从直观观察还是使用,都能发现:
/J
和/D
都只能作用于目录,不能用于文件。(不会检查引用目录是否存在)
使用/J
和/D
创建的D_txtfile.txt
和J_txtfile.txt
,打开报错,提示目录名称无效。
/D
创建的符号链接,在操作系统看来就是一个快捷方式,/J
创建的联接,在操作系统看来就是目录本身。
/D
创建的D_dir
右键属性有个快捷方式的选项,/J
创建的J_dir
右键属性没有快捷方式选项
/J
创建联接的时候,底层都会转为绝对地址;/d
创建的时候命令中使用什么类型的地址,生成的符号链接就使用什么。
@rem 补一个,/D选项使用绝对地址
e:\test>mklink /D D_dir2 E:\test\test_dir
为 D_dir2 <<===>> E:\test\test_dir 创建的符号链接
e:\test>dir /al
2024/01/25 15:22 <SYMLINKD> D_dir [test_dir]
2024/01/25 16:07 <SYMLINKD> D_dir2 [E:\test\test_dir]
2024/01/25 15:25 <JUNCTION> J_dir [E:\test\test_dir]
2024/01/25 15:25 <JUNCTION> J_txtfile.txt [E:\test\test_txtfile.txt]
- 硬链接没有标识,无法区分(不管是命令行还是UI界面),而且硬链接不能跨分区创建
e:\test>mklink /H H_dir D:\test\testdir
系统无法将文件移到不同的磁盘驱动器。
e:\test>mklink /H H_txtfile.txt D:\test\testfile.txt
系统无法将文件移到不同的磁盘驱动器。
e:\test>
- 硬链接不允许创建目录的硬链接,只能对文件使用。
使用管理员权限创建目录的硬连接也失败
在家目录下创建依然失败
标签:25,windows,创建,txtfile,命令,test,mklink,txt,dir From: https://www.cnblogs.com/jiyuchen1/p/17987663