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

  • Post author:
  • Post category:其他




1. mklink命令

打开cmd命令窗口,输入”mklink /?”,得到帮助信息

创建符号链接。

MKLINK [[/D] | [/H] | [/J]] Link Target

    /D      创建目录符号链接。默认为文件
            符号链接。
    /H      创建硬链接而非符号链接。
    /J      创建目录联接。
    Link    指定新的符号链接名称。
    Target  指定新链接引用的路径
            (相对或绝对)。

接下来依次对参数/D、/H、/J进行解释和测试



2. 创建软链接(符号链接,Symbolic Link) /d或无参数

当参数为/D时,为对文件夹添加软链接;当无参数时,为对文件添加软链接。



2.1 测试-为文件夹创建软链接



2.1.1 创建

文件夹位置:“G:\mklink测试\软链接\文件夹测试”

输入命令“mklink /d folderDLink 文件夹测试”

在这里插入图片描述

结果:在”G:\mklink测试\软链接”下产生一个指向”G:\mklink测试\软链接\文件夹测试”的软链接floderDLink

在这里插入图片描述

资源管理器中,图标左下角有一个箭头,与快捷方式相同;类型为文件夹。

在这里插入图片描述

占用空间:不占用空间。

在这里插入图片描述

注意:

  • /D参数需要有管理员权限,否则会被提醒“你没有足够的权限执行此操作”
  • 此处cmd窗口的工作目录为所创建硬链接文件夹的所在目录。使用管理员权限打开cmd窗口后,默认工作目录为”C:\WINDOWS\system32>”
  • 命令的Link(指定新的符号链接名称)部分,可以为绝对路径,例如”mklink /D G:\mklink测试\软链接\folderDLink 文件夹测试”;或相对路径。当没有路径而只有软链接名称时,默认在当前工作目录下创建。
  • 命令的Target(指定新链接引用的路径)部分,可以为绝对路径,也可以为相对路径。当Target为相对路径时,系统寻找目标文件夹的绝对地址为“Link(绝对/相对)地址的上一级 + Target的相对路径”。



2.1.2 移动

移动符号链接,若源文件夹以相对路径创建则不可通过符号链接继续访问源文件夹,若源文件夹以绝对路径创建则可通过符号链接继续访问源文件夹。

移动源文件夹,不可通过符号链接继续访问源文件夹。



2.1.3 删除

删除符号链接,不影响源文件夹。

删除源文件夹,不可通过符号链接继续访问源文件夹。



2.1.4 更名

更改符号链接的名字,可通过符号链接继续访问源文件夹。

更改源文件夹的名字,不可通过符号链接继续访问源文件夹。



2.1.5 修改

在符号链接与源文件夹中修改相同。



2.1.6 其他

dos窗口中使用”dir”命令后,符号链接的类型为”<SYMLINKD>“,名称显示为”folderDLink [文件夹测试]” ,方括号内为符号链接指向的源文件夹(相对/绝对地址)。

支持跨盘符建立符号链接。



2.2 测试-为文件创建软链接



2.2.1 创建

文件位置”G:\mklink测试\软链接”

输入命令”mklink fileDLink 文件测试.txt”

在这里插入图片描述

结果:在”G:\mklink测试\软链接”下产生一个指向”G:\mklink测试\软链接\文件测试.txt”的软链接fileDLink

在这里插入图片描述

资源管理器中,图标左下角有一个小箭头,与快捷方式相同。类型为.symlink。

在这里插入图片描述

大小:0字节;占用空间:0字节。



2.2.2 移动

移动符号链接,若源文件以相对路径创建则不可通过符号链接继续访问源文件夹,若源文件以绝对路径创建则可通过符号链接继续访问源文件。

移动源文件,不可通过符号链接继续访问源文件。



2.2.3 删除

删除符号链接,不影响源文件。

删除源文件,不可通过符号链接继续访问源文件。



2.2.4 更名

更改符号链接的名字,可通过符号链接继续访问源文件。

更改源文件的名字,不可通过符号链接继续访问源文件。



2.2.5 修改

在符号链接与源文件夹中修改相同。



2.2.6 其他

dos窗口中使用”dir”命令后,符号链接的类型为”<SYMLINK>“,名称显示为”folderDLink [G:\mklink测试\软链接\文件夹测试]” ,方括号内为符号链接指向的源文件(相对/绝对地址)。

支持跨盘符建立符号链接。



3. 创建硬链接(Hard Link) /h

只能对文件创建硬链接,不可为文件夹创建硬链接。



3.1 测试-为文件创建硬链接



3.1.1 创建

文件夹位置:“G:\mklink测试\硬链接”

输入命令“mklink /h fileHLink.txt 文件测试.txt”

在这里插入图片描述

结果:在”G:\mklink测试\硬链接”下产生一个指向”G:\mklink测试\硬链接”的软链接fileHLink

在这里插入图片描述

资源管理器中,图标和类型与源文件相同。

在这里插入图片描述

虽然资源管理器中显示硬链接占用空间,但是实际上,硬链接和源文件只想同一块存储空间,硬链接是源文件的另一个入口,因此硬链接不占用空间。



3.1.2 移动

移动源文件和硬链接都可以继续访问文件内容。



3.1.3 删除

删除硬链接或源文件都不会影响访问文件内容。只有删除源文件和全部的硬链接才能真正删除



3.1.4 更名

对硬链接和源文件更名都不会影响访问文件内容。



3.1.5 修改

对硬链接和源文件内容的修改相同。



3.1.6 其他

dos窗口中使用”dir”命令后,硬链接与源文件的类型的大小显示相同。

不可跨磁盘或文件系统建立硬链接。

创建无需管理员权限。



4. 创建目录联接(Junction) /j

只能对文件夹创建目录联接,不能对文件创建目录联接



4.1 测试-为文件创建目录联接



4.1.1 创建

文件夹位置:“G:\mklink测试\目录联接\文件夹测试”

输入命令“mklink /j folderJLink 文件夹测试”

在这里插入图片描述

结果:在”G:\mklink测试\软链接”下产生一个指向”G:\mklink测试\软链接\文件夹测试”的软链接floderJLink

在这里插入图片描述

资源管理器中,图标左下角有一个箭头,与快捷方式相同;类型为文件夹。

在这里插入图片描述

虽然显示占用空间,但实际上并不占用空间。



4.1.2 移动

目录联接不可移动。源文件夹移动后不可通过目录联接继续访问。



4.1.3 删除

删除目录联接不会影响源文件夹。删除源文件夹后无法再通过目录联接继续访问。



4.1.4 更名

更改目录联接的名字,可通过符号链接继续访问源文件夹。

更改源文件夹的名字,不可通过目录联接继续访问源文件夹。



4.1.5 修改

在目录联接与源文件夹中修改相同。



4.1.6 其他

dos窗口中使用”dir”命令后,符号链接的类型为”<JUNCTION>“,名称显示为”folderJLink [G:\mklink测试\目录联接\文件夹测试]” ,方括号内为目录联接指向的源文件(绝对地址)。

可跨磁盘,但是不能链接网络上的资源。

JUNCTION 建立时可以用相对路径,但记录的是绝对路径。



5. 参考文献


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


Windows 中的 mklink 命令



版权声明:本文为zero_wind原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。