目录
一、前言
Windows Vista及以上的Windows系统(不包括Windows Server系列)的
mklink
指令可以创建文件夹的链接(类似快捷方式)。
因为是从底层实现文件夹链接,所以这个链接是对应用程序透明的。
Windows 2000 和 Windows XP,以及 Windows Server系列 的相关功能使用的是
linkd
指令。
二、mklink指令(/d /h /j)
1. 查看mklink指令
mklink指令属于Windows中cmd的内置指令,我们可以使用cmd查看mklink的语法和功能介绍。
点击“搜索”图标,搜索“cmd”或“命令提示符”,点击“以管理员身份运行”打开cmd命令提示符,
输入
mklink
指令,按下回车键后,即可查看语法和功能介绍。
2. mklink指令的语法
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。
例子:我在
C:\Users\WeberZhou\.vscode\extensions
创建符号链接(软链接),指向文件真正所在路径
D:\Microsoft VisualStudioCode\VScode Extensions\
。
mklink /D "C:\Users\WeberZhou\.vscode\extensions" "D:\Microsoft VisualStudioCode\VScode Extensions\"
注意:i)各个参数之间必须要有一个空格隔开。
ii)每个路径都必须要使用英文(半角)双引号将路径括起来。
iii)建议使用绝对路径。
3. 关于参数 /d /h /j 的介绍
参数区别:
①
/d
为目录创建符号链接,属于软链接,允许相对路径或绝对路径的链接;
②
/h
为文件创建硬链接,属于硬链接;
③
/j
为目录创建联接点,属于软链接,只能是绝对路径的链接。
④当没有上面3个命令符时,默认的是为文件创建符号链接!文件类型:
.symlink
(Symbolic Link)。
比如,分别创建C:\data\tmp的符号链接C:\1和软链接C:\2,那么C:\1指向的就是同级文件夹下的data文件夹下的子文件夹tmp,而C:\2指向的是C:\data\tmp这样的绝对路径。影响就是,如果把C:\1和C:\2这两个文件夹移动到d盘,那D:\1的链接就失效了,而D:\2仍然有效。
文件的硬链接是对文件创建的链接,比如对C:\data\1.txt创建链接C:\data\2.txt,那么这两个文件就是同一个文件的两个等价别名了,相当于是指向同一个硬盘存储空间的两个指针,删除其中任何一个都不影响另一个文件。但是限制就是这种链接不能跨分区。
Windows的符号链接、联接点、硬链接、快捷方式的区别链接类型命令文件类型文件路径空间占用可链接类型本质Windows下是否可跨磁盘询问方式源文件与链接文件关联关系符号链接
(软链接)
/d
.symlinkd
相对路径/绝对路径不占空间只能是目录 相当于只是对源目录进行了引用,
可以理解为:只有使用权,没有所有权,可以当作快捷方式。可以跨本地磁盘,
也可以跨网络磁盘(共享目录)。 本地访问:通过链接目录所在磁盘路径访问。
网络访问:通过tomcat可实现。 源目录移动、重命名或删除后,链接目录无效;
链接目录删除,源目录不受影响;
源目录里面的文件发生变化时(新增、修改、删除),链接目录里面的文件同步发生变化,反之,同样成立。目录联接
(软链接)
/j
.junction
只能是绝对路径不占空间只能是目录同上,联接点。只能跨本地磁盘。同上。 同上。
但是,创建的链接文件夹移动后,
使用相对路径的符号链接会失效,
使用绝对路径的连接点链接仍有效。硬链接
/h
.源文件类型只能是绝对路径占用空间和源文件一样只能是文件 相当于对源文件进行拷贝备份,
可以理解为:执行了复制和粘贴的操作。都不可以。 本地访问:通过链接文件所在磁盘路径访问。
网络访问:通过tomcat可实现。 源文件删除后,链接文件无效;
链接文件删除,源文件不受影响;
只有将源文件和链接文件全部删除时,才会将文件真正的删除;
当源文件内容发生变化时(修改),链接文件同步发生修改,反之,同样成立。快捷方式批处理
.lnk
只能是绝对路径文件大小仅有几百字节Byte,与原文件大小无关。文件和目录均可只能跨本地磁盘 本地访问:自动跳转到文件、目录的所在磁盘路径访问。
网络访问:无法通过网络访问到该快捷方式所对应的实际文件。 源文件删除,快捷方式失效;
快捷方式删除,源文件不受影响;
只是创建了一个快捷方式。
4. mklink使用实例
① 不带参数 --> 为文件创建符号链接
② /d --> 为目录创建符号链接
③ /h --> 为文件创建硬链接
④ /j --> 为目录创建联接点
5. 出现报错的几种情况
① 报错:“拒绝访问”
原因:
/h
是用来创建文件的硬链接的,但在输入的“Link路径”和“Target路径”中填写的却是文件夹目录的路径。
解决办法:输入的“Link路径”和“Target路径”中应该填写文件的路径。
② 报错:“无效开关”
原因:使用
/
作为路径中的分隔符时,没有用英文(半角)双引号将路径括起来。
解决办法:路径中的分隔符用
\
时,路径可以不用英文(半角)双引号括起来;若是使用
/
作为路径中的分隔符时,必须要用英文(半角)双引号将路径括起来。
③ 出现错误:指令正常执行,但是创建了一个带有文件格式的文件夹,并且无法打开这个文件夹。
原因:
/d
是用来创建目录的符号链接的,但在输入的“Link路径”和“Target路径”中填写的却是文件的路径。
解决办法:将刚才错误创建的文件夹删除,重新输入指令,注意输入的“Link路径”和“Target路径”中应该填写文件夹目录的路径。
版权归原作者 零号萌新 所有, 如有侵权,请联系我们删除。