当前位置:网站首页>【批处理DOS-CMD命令-汇总和小结】-符号链接、硬链接、软链接、目录联结(mklink)
【批处理DOS-CMD命令-汇总和小结】-符号链接、硬链接、软链接、目录联结(mklink)
2022-07-16 06:58:00 【键盘即钢琴】
以下的测试环境是win10教育版。
参考来源
关于mklink的/D /J 区别_notback的博客-CSDN博客_mklink 区别
背景
符号链接是在文件系统上实现的链接,对软件来说是透明的,也就是说,当软件访问符号链接时,实际上是在访问该符号链接所指向的文件(夹)。
因此对目录创建符号链接是我们实现软件搬家,腾出C盘空间的法宝。
另外,如果我们想要把一个藏在很深的路径中的目录或文件做一个映射出来,可以用符号链接、硬链接或目录联结。
一、符号链接、硬链接、软链接、目录联结、快捷方式
1.1 符号链接(软链接)
英文全称Symbolic Link,简称Symlink。
作用对象:文件(对应无参数)和文件夹(对应参数/d)。
占用空间:不占用任何空间。

是否可跨磁盘:可跨磁盘,并且可跨机器(局域网远程共享文件夹)。
资源管理器图标:无参数创建文件链接是带箭头源文件图标,无参数创建文件夹链接是带箭头白板图标(无意义的情况),参数/d创建文件夹是带箭头文件夹图标,参数/d创建文件是带箭头白板图标(无意义的情况)。
创建权限:需要管理员权限。
支持路径:支持相对路径和绝对路径。
路径更改后的影响:源文件(夹)的路径被更改,链接就失效;而符号链接的所处路径更改,只有当链接指向绝对路径时,才不会失效。
删除方式:直接在资源管理器中删除或者用cmd命令【del file_link】、【rmdir dir_link】。
删除后的影响:源文件(夹)删除后,链接就失效;而符号链接删除并不会对源文件(夹)产生任何影响。
1.2 硬链接
英文全称Hard Link。
作用对象:文件(对应参数/h);若源头是文件夹,则无意义。
占用空间:文件字节大小和源文件相同,但是实际占用空间为0,因为硬链接和“创建源”指向磁盘内存中同样的空间。
是否可跨磁盘:不可跨磁盘,也即不能在C盘创建D盘某文件的硬链接。
资源管理器图标:同源文件(夹)图标一模一样。
创建权限:无需管理员权限。
支持路径:支持相对路径和绝对路径。
路径更改后的影响:xxxxxxxxx。
删除方式:直接在资源管理器中删除或者用cmd命令【del file_link】。
删除后的影响:源文件(夹)删除还是硬链接删除,都不会对另一方产生影响。
1.3 目录联结(初级软链接)
英文全称Junction。
作用对象:文件夹(对应参数/j);若源是文件,则无意义。
占用空间:虽然目录联结的占用字节数和源文件夹相同,但是实际不占额外内存空间(不信你们可以对一个几GB的文件夹创建目录联结,会发现创建前后磁盘剩余内存不变)。

是否可跨磁盘:可跨磁盘,但是不能创建远程主机中的文件夹的目录联结。
资源管理器图标:如果是文件夹创建的目录联结,显示的就是一个文件夹的图标加一个箭头;如果是文件创建的目录联结(无意义的情况),也是文件夹图标加一个箭头。
创建权限:无需管理员权限。
支持路径:不管是绝对路径还是相对路径都支持,与网上流传的「仅支持绝对路径」有差别。

路径更改后的影响:xxxxxxxxx。
删除方式:直接在资源管理器中删除或者用cmd命令【rmdir dir_link】。
删除后的影响:只能从源头影响到联结,而删除联结对源头没影响。
目录联结和文件夹符号链接的区别
区别一:创建文件夹符号链接需要管理员权限
创建符号链接需要特殊权限(管理员权限),在没有权限的情况下直接创建会发生错误。
而创建目录联接仅需要访问文件系统。
详见本文3.2小节。
区别二:移动目录联结会影响源文件夹里的文件
例如,test5/dir3下有两个文件
我们创建该文件夹的目录联结后
将目录联结移动到a文件夹中,发现图标变成普通文件夹
并且源文件夹dir3的文件全没啦
而如果是文件夹符号链接,移动过去,真的纯粹是在移动链接而不涉及源文件夹,图标没发生改变。
区别三:符号链接可以指向远程,而目录联接只能指向本地
远程访问时,目录联接在服务器处理,而符号链接在客户端处理。
假设您在一台名为A的计算机上放置一个目录联接c:\myjunction和一个目录符号链接c:\mysymlink,都指向c:\target。
使用A时,您不会发现它们之间有很大的区别。但是,如果您使用的是另一台名为B的计算机,则:
- 目录联接\\A\c$\myjunction将指向\\A\c$\target
- 但是符号链接\\A\c$\mysymlink将指向\\B\c$\target
注意:默认情况下,系统不支持远程计算机上的符号链接,因此在大多数情况下,第二个示例实际上会导致“找不到文件”或“由于符号链接类型被禁用而无法使用符号链接。”
由于符号链接是客户端解析的,所以本地文件系统上的符号链接可以指向远程文件系统。例如符号链接c:\MyNetworkShare可以指向网络上的\\Server\Share。
而我们不能创建一个目录联接c:\MyNetworkShare指向另一台计算机\\Server\Share,因为目录联接的目标必须是本地的。
而正因为符号链接的功能性更强,能够被远程访问,所以更不安全。
1.4 快捷方式
英文长称Shortcuts,短称Ink。
作用对象:可对文件或文件夹创建快捷方式。
占用空间:额外占用几十上百个字节。
是否可跨磁盘:可跨磁盘,但是不可跨机器。
资源管理器图标:文件的快捷方式图标是源文件图标加一个箭头,文件夹的快捷方式图标是普通文件夹图标加一个箭头。
创建权限:无需管理员权限,直接。
支持路径:创建快捷方式直接用右键菜单,无需用到相对路径和绝对路径,并且win10系统实现快捷方式的方法也不是简单的路径。
路径更改后的影响:源文件(夹)的路径被更改,快捷方式不会失效;快捷方式不论放在哪里都不对源有影响。
删除方式:直接在资源管理器中删除或者用cmd命令【del file_link】。
删除后的影响:源文件(夹)删除后,快捷方式就失效;而快捷方式删除并不会对源文件(夹)产生任何影响。
二、mklink的帮助信息
执行【mklink /?】,打印相关帮助信息。
C:\Users\Administrator>mklink /?
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。三、常见错误及其规避方法
3.1 名称重复无法创建
当指定目录中已经有与链接相同名称的文件时,创建就会出错,【当文件已存在时,无法创建该文件】。

3.2 权限不足以创建链接
对于符号链接(无参数和有参数/d),需要启用管理员权限来创建。

3.3 相对路径必须用双引号
对绝对路径或者不需要跨当前目录的相对路径,可以不用双引号


但是跨当前目录(也即有斜杠符),就必须用英文双引号将路径括起来,不然可能出错。
四、无参数时创建文件符号链接
4.1 无参数创建文件符号链接(有效)
假设在test5文件夹下已经有tool.txt文本文件,现在我们要创建一个该文件的符号链接。
执行命令【mklink tool_link.txt tool.txt】。

可以看到图标和该文件的快捷方式图标完全一样。
4.2 无参数创建文件夹符号链接(无效)
假设在test5文件夹下已经有dir2_1文本夹,现在我们要创建一个该文件夹的符号链接。
执行命令【mklink tool_link.txt tool.txt】。

可以看到图标就是一个无效图标,也在暗示这个链接是没意义的。
我们双击它也会发现没有任何反应。

五、参数/d创建文件夹符号链接
5.1 参数/d创建文件夹符号链接(有效)
假设在test5文件夹下已经有dir2_1文本夹,现在我们要创建一个该文件夹的符号链接。
执行命令【mklink /d dir2_1_link dir2_1】。

可以看到图标从4.2小节的无效图标,变成了普通文件夹的快捷方式图标。

5.2 参数/d创建文件符号链接(无效)
假设在test5文件夹下已经有文本文件tool.txt,现在我们要创建一个该文件的符号链接。
执行命令【mklink /d tool_link.txt tool.txt】。
可以看到图标竟然还是一个普通文件夹的快捷方式图标,我们双击它后发现目录位置不可用。


六、参数/h创建文件硬链接
6.1 参数/h创建文件硬链接(有效)
假设在test5文件夹下已经有文本文件tool.txt,现在我们要创建一个该文件的硬链接。
执行命令【mklink /h tool_link.txt tool.txt】。

可以看到图标不带箭头(除了硬链接没箭头其他都有),图标跟源文件图标一样,并且类型一样。

6.2 参数/h创建文件夹硬链接(无效)
假设在test5文件夹下已经有文件夹dir2_1,现在我们要创建一个该文件夹的硬链接。
执行命令【mklink /h dir2_1_link dir2_1】。

虽然我是在管理员身份下运行的这一串命令,但还是拒绝访问了!
七、参数/j创建目录联结
7.1 参数/j创建目录联结(有效)
假设在test5文件夹下已经有dir2_1文本夹,现在我们要创建一个该目录的联结。
执行命令【mklink /j dir2_1_link dir2_1】。

可以看到图标从4.2小节的无效图标,变成了普通文件夹的快捷方式图标。

7.2 参数/j创建文件联结(无效)
假设在test5文件夹下已经有文本文件tool.txt,现在我们要创建一个该文件的联结。
执行命令【mklink /j tool_link.txt _link】。

可以看到图标是普通文件夹的快捷方式图标。

双击就出错
八、cmd指令删除链接造成的影响
rmdir命令只会删除链接,但是del命令会同时删掉源文件(夹)。
如果只想删除链接本身,也可在资源管理器中选中删除。
边栏推荐
- SLAM_ Rotational kinematics_ Relationship between velocity V and acceleration a in two coordinate systems
- ZYNQ PL中断脉冲多久可以被CPU捕获到
- Constraints in vivado that you can't understand
- Deutsche Bank listed on the world Hong Kong Stock Exchange: with a market value of HK $3.9 billion, Shaanxi Automobile Group is the major shareholder
- angr原理与实践(一)——原理
- Vulnhub-dc6 learning notes
- RGB图像上的密文--违规数据隐藏
- ACL 2022 | argument pair extraction based on reading comprehension
- Googlephoto setting Wallpaper - wallpaper clipping interface configuration
- Failure of CUDA installation nsight visual studio edition failed
猜你喜欢

How should Amazon sellers prevent association? Don't cut the bill! (detailed explanation of evaluation self support number)

86触摸开关/台扇/空调/智能家居/家电等,低功耗高抗干扰3键3路3通触摸IC-VK3603 ESOP8,性能稳定,灵敏度可调
![[imaging] [8] terahertz optics - beam coupling, high-order Gaussian beam model](/img/b7/1db4c5c27994b909a2033e388c9181.jpg)
[imaging] [8] terahertz optics - beam coupling, high-order Gaussian beam model

【成像】【8】太赫兹光学——波束耦合,高阶高斯波束模型

Failure of CUDA installation nsight visual studio edition failed

Select statement if else

Kingbasees v8r6 ksql turn off auto submit

【日常训练】515. 在每个树行中找最大值

Function stack frame (worth collecting)

STM32 application development practice tutorial: multi computer communication application development based on RS-485 bus
随机推荐
【服务器数据恢复】IBM某型号存储RAID5数据恢复案例
Vulnhub-dc8 learning notes
Preparation for Bao Yan machine test XIV: BFS
STM32 application development practice tutorial: human machine interface application development with interactive function
【成像】【7】太赫兹光学——光学元件和子系统
2022 R2 mobile pressure vessel filling test questions and answers
STM32 application development practice tutorial: multi computer communication application development based on RS-485 bus
Language AI originally knew whether his answer was correct! New research in Berkeley and other universities is hot, netizen: dangerous, dangerous, dangerous
【动态内存分配】
Vulnhub-DC7学习笔记
重新认识你的NFT
Operation of ES
Establishment of APP automated test framework (VII) -- airtest basic operation
从小米10发布来看编译优化
Esri推出用于设施寻路的室内定位系统
Architecture Basics
Background running program method
lora和lorawan无线技术在物联网的应用
05 gulimall VirtualBox set fixed IP for virtual machine
RGB图像上的密文--违规数据隐藏





