首页/系统/Windows 运维速查/mklink 创建符号链接
CMD 常用命令74 条

mklink 创建符号链接

创建符号链接/硬链接/目录联接:磁盘迁移、把大目录搬到其他盘但保持原路径可用时的利器。

Windows 运维速查系统更新于 2026-10-13

mklink 是什么

mklink 是 CMD 的内置命令(不是独立可执行文件),用于创建符号链接、硬链接和目录联接。它解决的核心问题是「数据搬走了,但路径必须还在」:把大目录放到另一个盘,再用链接占住原来的位置,程序与脚本完全无感。三类链接语义差别很大,混用会带来删除、备份与权限上的意外,动手前先确认要的是哪一种。因为它是 CMD 内置命令,PowerShell 里要写成 cmd /c mklink ... 才能调用。

基本信息

适用平台Windows Vista 及以后(含 10/11、Server 2008 以后)
语法mklink [/d] [/h] [/j] 链接名 目标
参数/d 目录符号链接、/h 文件硬链接、/j 目录联接;不加参数则建文件符号链接
权限要求符号链接需管理员或开启开发者模式;目录联接普通用户可建
指向范围符号链接可指向网络路径,硬链接与目录联接仅限本地卷
限制NTFS 卷;不支持跨卷硬链接与指向文件的联接

典型使用场景

  • 磁盘迁移:C 盘紧张,把日志、镜像目录搬到数据盘后原路径继续可用
  • 兼容老程序:软件写死了绝对路径,用链接把新位置挂回老路径
  • 共享依赖:多个工程引用同一份缓存目录,避免反复复制占空间
  • 硬链接省空间:同一份大文件在多个目录出现,只占一份数据块
  • 测试环境搭建:把生产目录联接到测试盘,快速验证脚本改动

常用示例

常用示例
REM 管理员或开发者模式下运行 CMD
mklink D:\link.txt D:\target\file.txt      # 文件符号链接(默认)
mklink /d C:\Logs D:\BigDisk\Logs          # 目录符号链接,可指向网络路径
mklink /j D:\GameLib E:\GameLib            # 目录联接,仅本地卷、普通用户可建
mklink /h C:\a\data.bin D:\b\data.bin       # 硬链接:同一数据块的第二个名字
cmd /c mklink /d C:\Logs D:\BigDisk\Logs    # PowerShell 里必须经 cmd /c 调用
REM 查看与清理
dir /AL C:\                                # 列出含重解析点的条目
del D:\link.txt                            # 删文件链接不删目标数据
rmdir C:\Logs                              # 删目录链接用 rmdir,删不动说明是联接以外的类型

三类链接怎么选

类型适用对象特点与注意
符号链接(默认)文件或目录(/d)指向路径本身,可跨盘与指向网络位置,需管理员或开发者模式
硬链接(/h)仅文件、仅本地卷与目标共享数据块,删任一名不影响数据,不占额外空间
目录联接(/j)仅本地卷目录由 mklink /j 创建,普通用户即可,老程序兼容性最好
删除链接本身不会删除目标数据,但删掉目标会让链接变成死链(访问报「找不到路径」)。硬链接相反:只要还有一个名字存在,数据就不会丢。
备份与同步工具对链接的处理不一致:robocopy 默认会跟随符号链接进入目标目录,复制内容而非链接,加 /XJ(排除联接)或 /SL(复制链接本身)才能符合预期。

PowerShell 侧等价做法

PowerShell 侧等价做法
New-Item -ItemType SymbolicLink -Path C:\Logs -Target D:\BigDisk\Logs   # 符号链接
New-Item -ItemType Junction -Path D:\GameLib -Target E:\GameLib            # 目录联接
Get-Item C:\Logs | Select-Object LinkType, Target                           # 查看链接类型与目标
在链接目录上执行递归删除(rmdir /s、rd /s /q)时,不同 Windows 版本行为不同,历史上出现过误删目标目录内数据的案例:删除前用 dir /AL 确认哪些条目是链接,并先备份。

易错点

  • 普通未提权 CMD 里执行 mklink 建符号链接会报「您没有足够的权限执行此操作」,要么提权要么改用 mklink /j 联接
  • 把目录联接当成符号链接使用:指向网络共享的目录联接无法创建,跨盘迁移到 NAS 时方案会失效
  • 硬链接当备份用:硬链接与源文件共享数据块,源文件被改写时「副本」同步变化,起不到版本保护作用
  • 用 robocopy 或备份软件同步含链接的目录却没加 /XJ、/SL,结果把目标目录内容整份复制或直接跳过链接

数据来源与参考

  • Microsoft Learn:mklink 命令
  • Microsoft Learn:Hard Links and Junctions

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌