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

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 命令

### 创建或修复 C 盘链接的方法 在 Windows 中,可以通过 `mklink` 命令来创建符号链接硬链接目录链接。如果需要修复已损坏的链接,则通常涉及重新创建该链接或将目标路径恢复到原始状态。 #### 使用 mklink 创建链接 以下是通过 DOS 命令行工具 `cmd.exe` 来创建不同类型的链接的具体方法: 1. **创建软连接 (Symbolic Link)** 软连接类似于快捷方式,但它可以用于文件和文件夹,并且功能更强大。例如,要创建一个指向 `C:\Windows\WinSxS.moved` 的名为 `WinSxS.link` 的目录链接,可执行以下命令: ```batch mklink /D C:\Windows\WinSxS.link C:\Windows\WinSxS.moved ``` 这条命令的作用是建立一个名称为 `WinSxS.link` 的目录链接,其实际数据存储位置位于 `WinSxS.moved` 文件夹中[^1]。 2. **创建硬连接 (Hard Link)** 硬连接适用于单个文件而非整个文件夹。它使得多个文件名共享同一份磁盘上的物理数据副本。假设有一个日志文件 `example.log` 需要在另一个位置访问,可以用如下指令实现: ```batch mklink /H C:\Logs\example_copy.log C:\OriginalPath\example.log ``` 3. **创建挂载点 (Junction Point)** 挂载点是一种特殊的目录链接形式,在 NTFS 文件系统下特别有用。对于某些旧版程序兼容性需求或者特定场景优化来说非常适用。比如把用户配置资料移动至其他驱动器上但仍保持原路径可用性的话就可以这样做: ```batch mklink /J C:\Users\User\AppData\MountedFolder D:\Data\AppDataContents ``` #### 修复现有链接 当某个重要组件如 WinSxS 子系统的链接被意外破坏时,可能会影响操作系统的正常运行甚至引发蓝屏错误等问题。此时除了简单地重建外还需要借助 SFC 工具来进行深层次检测与修正工作流程如下所示: 1. 打开具有管理员权限的命令提示符窗口; 2. 输入并回车确认执行全面扫描任务: ```batch sfc /scannow ``` 此过程可能会花费几分钟时间完成全部检查以及必要时候自动替换受损项目动作[^2]; 3. 如果发现仍有未解决的手动调整部分则按照前述指导再次运用适当参数组合调用 `mklink` 定义新的关联关系即可恢复正常运作环境。 ### 注意事项 - 修改系统核心区域前务必做好充分备份以防万一出现问题难以挽回损失。 - 不建议随意更改或移除像 Winsxs 这样的关键子目录除非确切知道后果及其替代方案否则可能导致不可预见的技术难题发生几率增加。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值