以下的测试环境是win10教育版。

参考来源

windows快捷方式,符号链接,软链接和硬链接

关于mklink的/D /J 区别_notback的博客-CSDN博客_mklink 区别

Windows 中的 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命令会同时删掉源文件(夹)。

如果只想删除链接本身,也可在资源管理器中选中删除。

【批处理DOS-CMD命令-汇总和小结】-符号链接、硬链接、软链接、目录联结(mklink)相关推荐

  1. 【批处理DOS-CMD命令-汇总和小结】-磁盘管理和修复、磁盘和分区属性的管理、设置隐藏分区卷(convert、diskpart、chkdsk)

    一.磁盘格式转换命令--convert 打印convert命令的帮助信息 如果想要将c盘从fat转到ntfs,可以执行命令[convert c:/fs:ntfs]. 二.磁盘或分区管理--diskpa ...

  2. 【批处理DOS-CMD命令-汇总和小结】-跳转、循环、条件命令(goto、errorlevel、if、for[读取、切分、提取字符串]、)cmd命令错误汇总,cmd错误

    一.本文摘要 此文主要研究对代码分支化执行和重复利用的实现. 分支化执行指根据中途的实际执行结果决定下一步执行的代码,跳转的代码行号:分支化执行大概分为跳转执行.条件判断执行:因此,分支化执行基本是只 ...

  3. 【批处理DOS-CMD命令-汇总和小结】-CMD窗口的设置与操作命令(cd、title、mode、color、pause、chcp、exit、goto :eof)

    一. 改变cmd窗口当前目录--资源管理器或cd 具体方法详见我的专栏中另一篇文章的章节1.5. [批处理DOS-CMD命令-汇总和小结]-文件与目录操作命令(md.rd.xcopy.dir.cd.s ...

  4. 【批处理DOS-CMD命令-汇总和小结】-将文件夹映射成虚拟磁盘——subst

    一.subst命令的意义 有时候文件(夹)的目录很深,每一次打开的时候需要一直切换目录,有了镜像虚拟磁盘subst命令,临时地将文件夹映射成磁盘显示在我的电脑中,就会让工作变得更轻松,可以节约很多时间 ...

  5. dos命令-mklink-软链接(符号链接)、硬链接、目录链接的区别

    1. mklink命令 打开cmd命令窗口,输入"mklink /?",得到帮助信息 创建符号链接. MKLINK [[/D] | [/H] | [/J]] Link Target ...

  6. windows常用dos(cmd)命令

    windows常用dos(cmd)命令.md 参考网址: https://mp.weixin.qq.com/s/DJMGUmw8hPMkWMEbj4KVIg 前言 最近一直在Windows下操作,但与 ...

  7. Linux磁盘管理——XFS文件系统符号链接硬链接

    九.xfs文件系统 XFS文件系统的配置 基本上XFS就是一个日志式文件系统,之所以现在把它当预设的文件系统 是因为它原本就是被开发用于高容量磁盘以及高性能文件系统之用的,相当适合于现在的环境.此外, ...

  8. 【批处理DOS-CMD命令-汇总和小结】-Cmd窗口中常用操作符(<、<<、<、>、>>、>、、、||、|、()、;、@、““、‘‘)

    一.重定向操作符--<.<<.&<.>.>>.&> 1.1 清除重定向--<和> cmd>file     //cmd ...

  9. 【批处理DOS-CMD命令-汇总和小结】-cmd的内部命令和外部命令怎么区分,CMD命令和运行(win+r)命令的区别,cmd的命令扩展(扩展命令)

    一.cmd的内部命令和外部命令怎么区分? 区分规则很简单,在cmd窗口中用help命令能打印出来的命令都是cmd内部命令,没包括在里面的都是外部命令. D:\>help 有关某个命令的详细信息, ...

最新文章

  1. css 文字过长 省略号,css实现文字过长显示省略号的方法
  2. 1012: [JSOI2008]最大数maxnumber 线段树
  3. idea查看项目pid_idea启动时的端口号
  4. php分页怎么实行跳转,php分页函数,支持页码下拉选择跳转
  5. Less (一种动态样式语言)
  6. java swt 不显示图片_Java SWT按钮图像未刷新
  7. Observable观察者模式的使用
  8. Python 列表笔记
  9. 新疆农业大学的计算机专业的分数线是多少,2017新疆农业大学科学技术学院专业排名及分数线...
  10. Inside the Linux Operating System[1]
  11. 一、坐标系之WGS84坐标系与WGS84 Web Mercator
  12. CRM客户关系管理系统商业项目视频课程-赖国荣-专题视频课程
  13. 自动跳动滑动门html,jQuery 滑动门自动滑动实现代码
  14. matlab面源模式反扩散参数研究,基于GIS的大气点源污染高斯烟羽扩散模拟研究
  15. resourcehacker
  16. 悬赏任务发布平台系统源码|威客任务网站源码PHP开源版
  17. 期货开户公司想恶意滑点是做不到的
  18. java poi生成word 并插入 表格
  19. ​春节档票房超30亿,互联网资本新旧势力赛跑
  20. 点石互动--kyw之:30步,网站信任度提升200%

热门文章

  1. Zabbix磁盘IO监控
  2. 深入理解Qt信号槽机制
  3. 【每日知识】计时器方法
  4. 杨柳老师--项目管理--企业项目流程优化与体系制度建设咨询--沪师经纪刘建
  5. R语言函数式编程(Functional Programming)概念
  6. JS判断浏览器(精短)
  7. COM笔记-QueryInterface函数
  8. 监控自动上传自己的服务器,10 分钟实现一个自己的服务器监控器
  9. expect脚本编写
  10. tp5爬去微信公众号文章信息