跳转到内容

符号链接、目录联接与长路径限制

核验于 2 分钟阅读

符号链接、目录联接与硬链接的区别、各自适用场景,以及怎么越过 260 字符路径限制。

测试环境Pro (26H2) / Server · 版本号 26300.9457 / 26100.33650 · x64
E1
版本号
26300.9457 / 26100.33650
版本
Pro (26H2) / Server
架构
x64
支持
文档(E1)
证据
E1官方文档
核验日期
2026-10-29
页面类型
方法

三种链接,行为差别很大:

类型 命令 指向 目标移动后
符号链接(文件/目录) New-Item -ItemType SymbolicLink 路径字符串 断链
目录联接(仅目录) New-Item -ItemType Junction 本地卷路径 跟随目标
硬链接(仅文件) New-Item -ItemType HardLink 同一份数据 它本身就是文件

要挪走一个软件坚持要放在固定路径的文件夹,用目录联接。需要透明指针且能接受路径依赖,用符号链接。硬链接几乎不用——它是同一个文件的两个名字。

很多软件把路径写死:C:\ProgramData\Vendor、C:\Users\Public\Documents、游戏存档目录。你改不了应用,又不希望数据放在系统盘。

终端窗口
Robocopy "C:\ProgramData\Vendor" "D:\Data\Vendor" /E /MOVE
New-Item -ItemType Junction -Path "C:\ProgramData\Vendor" -Target "D:\Data\Vendor"

跨卷搬运时加 /COPYALL 可保留 ACL;普通 /MOVE 在某些配置下会丢掉显式权限。

经典 MAX_PATH 是 260 字符。Windows 10 1607+ 可以突破,但需要两个条件同时满足:策略已启用,且应用通过清单声明支持。

  • 启用:HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled = 1(或组策略)。
  • 未声明长路径感知的程序仍然在 260 处失败。
  • 资源管理器、cmd.exe 与部分备份工具处理方式不同。

总是有效的绕法:

  • 缩短根路径——D:\p\ 而不是 D:\Projects\2026\Client Name\...
  • 对接受它的 API 使用 \\?\ 前缀(\\?\D:\very\long\path)。
  • OneDrive/SharePoint 路径要浅——同步路径会放大这个限制。
终端窗口
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name LongPathsEnabled
工具 行为
备份/同步工具 可能跟随链接(数据翻倍)或跳过
robocopy /SL 跟随符号链接,/XJ 跳过目录联接
杀毒软件 通常没问题,偶尔在循环链接上打转
空间统计工具 重复计算或直接拒绝

一定要告诉备份工具怎么处理链接,否则要么漏数据,要么把同一份 500GB 备份两遍。

E1。链接语义与长路径策略有微软文档依据。本文没有在实验室虚拟机上创建链接。

来源