如何在 Windows 中创建符号链接?

cow*_*god 117 windows files symbolic-link

Windows Vista 添加了创建文件和目录符号链接的功能。如何创建符号链接以及支持它的 Windows 的当前消费者和服务器版本是什么?

cow*_*god 112

您可以使用命令行实用程序创建符号链接mklink

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

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.
Run Code Online (Sandbox Code Playgroud)

自 Windows Vista 和 Windows Server 2008 起,通过 mklink 的符号链接可用。在 Windows XP 和 Windows Server 2003 上,您可以使用

fsutil hardlink create <destination filename> <source filename>
Run Code Online (Sandbox Code Playgroud)

根据msdn.microsoft,FAT16/32 和 exFAT 不支持符号链接。似乎 Windows 只支持它们从或到 NTFS 分区。未来的 Windows 操作系统可能会继续支持 mklink。

您可以在Microsoft TechNetJunfeng Zhang 的博客howtogeek.com上阅读有关此新功能的更多信息。

  • 很高兴在下面的@sascha 的回答中提到`fsutil`,为 Windows Server 2003 提供解决方案。 (2认同)

sas*_*ont 30

在 Windows XP 上,您可以使用fsutil(内置于操作系统中)来创建硬链接

 fsutil hardlink create c:\foo.txt c:\bar.txt
Run Code Online (Sandbox Code Playgroud)

请记住 fsutil 仅在两者位于同一驱动器上时才有效

  • 好答案。我在 WinXP/Win2003 上需要 mklink,但这为我解决了我的问题。我通常使用来自 sysinternals 的junction.exe,但它只处理目录,在这种情况下我需要一个文件链接 (2认同)

小智 10

一件小事,如果你使用的是 Powershell,mklink 不能直接工作,像这样运行:

PS C:\d\eclipseInstalls> cmd /k mklink /D antRunner 3.4.2
symbolic link created for antRunner <<===>> 3.4.2
Run Code Online (Sandbox Code Playgroud)


小智 7

使用mklink的Sysinternals(微软)。我相信 mklink可以在 Windows 2000 及更高版本中工作,但我找不到任何关于它的硬文档。连接点适用于 Windows 2000 及更高版本。