参考博文:
https://blog.csdn.net/MonoBehaviour/article/details/106077852
Windows下mklink使用_星幕·云影的博客-CSDN博客
简介:mklink是windows自带的功能,一般需要运用管理员权限才能执行;我常用于给文件建立从 C 盘到D盘的链接,以节省空间
首先,以管理员身份运行 命令提示符
![](https://img-blog.csdnimg.cn/b5fbc9510aa640989f7ed3314b3bbd2f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAR29kLTAwMQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
让我们运用 MKLINK /? 看一看他的具体功能
![](https://img-blog.csdnimg.cn/adda2edd35c247c1b221bf0236c5cb1d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAR29kLTAwMQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
C:\WINDOWS\system32>MKLINK /?
创建符号链接。MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件 符号链接。 /H 创建硬链接而非符号链接。 /J 创建目录联接。 Link 指定新的符号链接名称。 Target 指定新链接引用的路径 (相对或绝对)。
注意:因为powershell不支持mklink命令,所以要在前面加cmd /c表示用cmd来运行该命令,路径注意引号(r路径包含空格加上" ",没有空格加不加“ ”都可以),可以是相对路径也可以是绝对路径。
符号链接(Symbolic link)
(z注意: mklink创建 链接的 第一个文件原来是没有的,通过mklink会自动创建,Target文件夹需要你自己创建)
例如 :A . 什么参数都不带
MKLINK "D:\name node" D:\csdn
即将d盘中的name node 文件链接到D盘的csdn文件,执行代码后也就是这
B .带参数
a. /D 创建目录符号链接。默认为文件 符号链接。
MKLINK /D "D:\name" "D:\csdn"
即将d盘中的name 文件夹链接到D盘的csdn文件夹,执行后
鼠标点击访问该文件夹时,实际上是在访问它连接的文件夹
** 特点**
- 创建链接后的图标和快捷方式很像, 都有一个箭头的标志
- 在系统中不占用空间
- 在文件系统中不是一个单独的文件
- 如果源文件被删除了,链接就没用了
- 移除源文件不会影响符号链接
- 移除链接文件也不会影响源文件
- win10_x64_build10565上测试不可以右键修改图标和设置管理员运行
- 文件大小为0字节和不占用空间
- 文件属性的创建时间和修改时间都是软链接创建和修改时的时间
- 文件类型是.SYMLINK
- 可以在cmd下运行软链接(假如链接的是程序, 且运行命令是XXX即可)(win10_x64_build10565上测试通过)
通过
相对路径
创建的软链接在移动后无法使用,
绝对路径
创建的移动后不影响使用。符号链接可以直接右键删除,或通过rmdir命令删除,不会影响原文件,但del命令则会把目标文件删除。
b: /H 创建硬链接而非符号链接。
- 硬链接只能用于文件,不能对文件夹创建硬链接,不然会提示“拒绝访问”
- 在系统中占用的空间与源文件相同,但在系统中引用的是相同的对象(不是拷贝)
- 图标和创建快捷方式的图标不同(没有快捷方式的小箭头)
- 移除源文件不会影响硬链接
- 移除硬链接不会影响源文件
- 如果源文件被删除,它的内容依然通过硬链接存在
- 硬链接文件的任何更改都会影响到源文件
- 文件大小, 占用空间, 创建和修改时间跟原原文件一样
- 可以在cmd下运行硬连接(假如链接的是程序)
- 通过上述命令就可以创建从“link”路径到“target”路径的硬链接,例如:在D盘根目录下新建文本“A.txt”,然后输入命令如下即可创建到”A.txt”的硬链接”B.txt”
- 在文件资源管理器上看,“B.txt”与“A.txt”占用同样大小的空间,其实这个数据并不用去理会,硬链接相当于给文件的数据多创建了一个“入口”,“A.txt”,“B.txt”指向的是硬盘中的同一块区域,因此这两个文件的内容是完全一样的,编辑任何一个文件都会影响到另一文件,当删除其中一个文件,只是删除这个文件其中一个“入口”,要两个文件都删除,文件系统才会标志这块硬盘区域上的文件被删除
c: /J 创建目录联接。
“目录联接”只能应用于文件夹,不可用于文件。对文件夹创建的“目录联接”与“符号链接”并没有区别,一样可以实现软件数据的迁移。不过貌似这两者对剪切操作有不一样的表现。
例如,我现在在D盘创建“文件夹A”,在“文件夹A”里新建A.txt,然后在D盘根目录创建一个“目录联接B”指向这个“文件夹A”,通过这个“目录联接B”,我可以访问到A.txt,接着我对“目录联接B”进行剪切操作,剪切到C盘,发现“文件夹A”和“目录联接B”还是在D盘,但是打开却发现A.txt不见了,被剪切到了C盘的“文件夹B”中,也就是说对“目录联接”的剪切操作会影响原来的文件。
给文件夹里的内容提供一个“入口” 即所谓的“联接点”,剪切操作时会通过这个“联接点”把内容剪切出来,原来的目录和“联接点”虽然没有变化,但里面的内容被剪切出来了。而“符号链接”的剪切操作仅仅是对这个“符号链接”的剪切,并不会透过这个“符号链接”把其内容剪切掉。
转载了 第二位博主大部分内容,欢迎前去关注两位博主
版权归原作者 God-001 所有, 如有侵权,请联系我们删除。