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


113

Windows Vista添加了创建指向文件和目录的符号链接的功能。如何创建符号链接,以及当前支持该链接的Windows用户和服务器版本是什么?


6
有人可以突出显示符号链接和快捷方式之间的区别吗?
tomjedrz

1
@tomjedrz:如果您使用快捷方式,则任何打开该快捷方式的API都会打开一个文本文件,其中包含目标文件/文件夹的路径。如果您使用链接,则任何打开该链接的API都会打开目标文件/文件夹。
Afriza N. Arief 2012年

2
与所有人所说的相反,我确认可以Windows XP中使用符号链接。(我使用它在VM共享文件夹上安装Picasa数据库)。只需查看schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html,然后导航至“ Windows XP的符号链接”部分。HTH
Adam Ryczkowski 2012年

Answers:


109

您可以使用命令行实用程序创建符号链接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.

从Windows Vista和Windows Server 2008开始,可以通过mklink使用符号链接。在Windows XP和Windows Server 2003上,可以使用

fsutil hardlink create <destination filename> <source filename>

根据msdn.microsoft,FAT16 / 32和exFAT不支持符号链接。看来Windows仅支持或支持NTFS-Partition。将来的Windows操作系统可能会继续支持mklink。

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


请将David的Technet网址添加到您的条目中以确保完整性。
迈克尔·普赖尔

网站说明,什么是结点(/ J选项)?
罗伊·里科

Directory Junction是目录符号链接的一种。support.microsoft.com/?kbid=205524
Lara Dougan

1
自Windows 2000以来,NTFS就一直支持链接(具有各种名称),但它们仅在内部使用,尤其是在SYSVOL域共享中使用。一些实用程序可用于管理它们,但不是内置的;Vista引入了MKLINK工具,并在默认Windows安装中广泛使用了链接。
马西莫

2
将是很好的提fsutil从下面@萨沙的回答提供用于Windows Server 2003的解决方案
Phrogz

30

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

 fsutil hardlink create c:\foo.txt c:\bar.txt

请记住,fsutil仅在两者都在同一驱动器上时才起作用


2
好答案。我在WinXP / Win2003上,需要mklink,但这为我解决了我的问题。我通常使用sysinternals的junction.exe,但这仅处理目录,在这种情况下,我需要文件链接
s3v1 2011年

遗憾的是,至少从我在其他地方所读的内容,fsutil无法创建符号链接。这是一个硬链接,因此不是对该问题的答案。
Vlasec 2015年

10

一件事,如果您使用的是Powershell,则mklink不能直接运行,请按以下方式运行它:

PS C:\d\eclipseInstalls> cmd /k mklink /D antRunner 3.4.2
symbolic link created for antRunner <<===>> 3.4.2

1
那应该是/ c,而不是/ k,否则cmd.exe不会退出。
dangph 2010年

7

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


1
如上所述,命令mklink仅适用于Vista和Server 2008及更高版本。

4

没有看到这在任何答案,但linkd.exe(在Windows 2003资源工具包在这里)允许您创建路口,其中相当多的功能为软/硬链接的作用Linux系统。Windows 2000及更高版本提供连接点,因此只需将linked.exe复制到目标系统即可。


1
注意,`/ linkd`仅适用于目录,不适用于文件。
Phrogz

3

如果您仍然使用旧Windows,例如XP,2000、2003等,请尝试使用NTFS Link

我经常使用。您会得到一个外壳链接,右键单击菜单选项以创建一个交接点。优秀的东西。


在Windows 2003上,这对创建到另一个驱动器上的文件夹的符号链接非常有用。谢谢!
Phil

来自匿名用户的评论,最初被编辑为答案:“注意:要使XP正常运行,必须使用NTFS分区,而不是FAT或FAT32。有关如何操作的步骤,请参阅aumha.org/win5/a/ntfscvt.php。转换为NTFS。”
squillman 2012年

2

请参阅TechNet条目。我相信这是Vista / Server 2008及更高版本的功能。


很酷,以前从未听说过此功能,感谢您的链接,它可能非常有用!!!
Marc-Andre R.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.