在较高的层面上,NTFS Junction Points和Symbolic Links之间唯一明显的区别是,Junction只能作为目录,而SymLinks也允许也是目标文件。
两者之间还存在哪些其他差异?
(注意,我已经看过this question和我正在寻找的有点不同 - 这个问题正在寻找一个赞成和反对列表,我正在寻找一组技术差异)
符号链接具有更多功能,而结点几乎似乎是一个遗留功能,因为它们的局限性,但这些限制的安全含义特别是为什么结点可能比符号链接更受欢迎。远程定位使符号链接更具功能性,但也会提高其安全性配置文件,而联结更安全,因为它们受限于本地路径。所以,如果你想要一个本地链接并且可以使用绝对路径,那么你可能会更好地使用一个交叉点;否则,请考虑添加其功能的符号链接。
**速度/复杂性的差异声明来自Wikipedia entry on NTFS reparse points中的未经证实的声明(很好的阅读)。*
其他NTFS链接比较
以下是关于该主题的一些其他比较,但在考虑交叉点时这些可能会产生误导,因为它们没有列出我上面列出的好处。
Taken from here(一个很好的介绍性阅读)
关于术语的评论
连接点是重新分析点(可以描述为符号链接)
NTFS Junctions和NTFS符号链接实际上以相同的方式(重新分析点)执行相同的操作,除了上述处理方式的差异。事实上,从技术上讲,Junction是一个更具一般意义上的“符号链接”,有时文档可能将Junction称为符号链接as is the case here。在这种情况下,“符号链接”并不意味着NTFS符号链接与结点不同(见下文)。
NTFS
尽管OP指明了这一点,但值得指出的是“符号链接”是一个非常通用的术语,并非特定于NTFS。所以,具体来说,这个比较是关于NTFS Junctions和NTFS Symbolic Links。
我发现对差异最有用的地方:
http://blogs.msdn.com/b/junfeng/archive/2006/04/15/576568.aspx
http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx
假设:Symlink是Windows中的Junction,因为Symlink是Unix中的Hardlink。
http://en.wikipedia.org/wiki/Symbolic_link#Windows_7_.26_Vista_symbolic_link
Windows 7和Windows Vista使用命令行实用程序mklink支持文件和目录的符号链接。与交接点不同,符号链接也可以指向文件或远程服务器消息块(SMB)网络路径。此外,NTFS符号链接实现提供了对跨文件系统链接的完全支持。但是,启用跨主机符号链接的功能要求远程系统也支持它们,这有效地限制了它们对Windows Vista和更高版本Windows操作系统的支持。
http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/
由Windows创建的符号链接与目录联结非常相似,但与目录联结不同,它可以指向文件或远程网络文件或目录。目标可以被定义为相对于符号链接位置的路径,或者当前卷中的绝对路径或另一个。另请注意,文件的符号链接与目录的符号链接不同,目标必须与定义匹配。
从功能上讲,在Windows中,一旦创建,就没有真正的区别。但是,它们之间存在显着差异。连接只能用于创建指向同一驱动器或不同驱动器的文件夹的链接,但前提是这些驱动器位于本地系统上(您无法通过网络创建指向文件夹的连接链接。)符号链接但是,没有相同的限制。符号链接可用于链接到文件或文件夹,这些文件或文件夹可以位于同一系统(相同的驱动器或不同的驱动器)或网络共享上,并可以使用相对位置符号(“\\ system2” \ foldera \ file.txt“,”d:\ foldera \ file.txt“,”\\ system2 \ foldera“,”d:\ foldera“或”d:\ foldera \ folderb ..“,其结果为最后2个示例是相同的位置。)相对位置符号可以是“。”,“..”,当前驱动器相对功能(如果当前驱动器是c:,则指定“\ tempa \ folderb”结果到c:\的链接tempa \ folderb,)和当前目录相对(如果当前目录是d:\ foldera \ folderb,则指定“d:file.txt”会生成到d:\ foldera \ folderb \ file.txt的链接。)
总结一下:连接点仅限于本地系统上的文件夹,而符号链接可以创建指向通过UNC路径或本地系统可访问的文件夹或文件的链接,这些位置的指定方式更加通用。符号链接基本上是连接点和硬链接的更通用的替代品。此外,在创建跨平台UNC路径链接时,Symbolic Links与Unix和Linux兼容。
希望这能以令人满意的方式回答您的问题。编辑纠正印刷错误。
Link Shell Extension,http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html,是创建和查看多种链接的绝佳工具。它还有很好的文档。
[在完整安装中,如果您正在查看高级链接,则会添加新的属性选项卡。同时为各种链接类型添加图标叠加箭头 - 如果没有显示,请滚动到FAQ部分; Windows仅支持十三种叠加;他展示了一个注册表解决方法。它的信息有用性的一个例子:未成功尝试获得您认为是文件夹的权限,但实际上是系统提供的连接链接,通常用于与旧版Windows的兼容性。
当为本地系统上的目录创建时,连接和符号链接的行为基本相同。
然而:
他们在网络上的行为不同。此链接描述了此行为:https://superuser.com/questions/343074/directory-junction-vs-directory-symbolic-link
如果你认为Junction Links是“愚弄操作系统和位置的快捷方式”,那么你将有一个很好的实用比较它们的使用和破坏它们。主要区别在于,如果复制符号链接或连接,它会复制目标,而不是(如快捷方式)复制包含指针的文件。与快捷方式一样,您可以删除符号或联结链接,而无需删除目标文件/文件夹。 [硬链接,该文件仅在删除最后一个链接时删除 - 包括从回收站中删除。查看LSE中的属性标记是否有任何链接,以查看硬链接的目标或引用计数。
硬链接或快捷方式是唯一可以移动的链接类型,没有任何副作用,如破坏或复制整个目标。移动目标总是会破坏链接,尽管可以在属性选项卡(用LSE显示)中轻松更新,或者使用LSE重新创建(如果复杂)。
符号链接的创建需要管理员权限,而连接则不需要。这加上Junctions广泛的内部操作系统使用表明Windows以直观,预期的方式处理它们。 [请注意系统文件夹的意外副作用(来自Win 10的经验)。]
[Link Shell Extension的一些特定于备份的功能非常有用 - 简而言之,它可以在标准文件夹中创建几种类型的可更新符号链接结构,以用于挂起备份目的。
最近在Windows中引入了符号链接:来自Vista。
不应将符号链接视为现有NTFS“重新分析点”技术的替代方案。
微软解释说,符号链接的唯一目的是与Unix更兼容。
MSDN:“符号链接的设计有助于迁移和应用程序与UNIX的兼容性。微软已经实现了它的符号链接,就像UNIX链接一样。”
Vista也是使用链接实现自身功能的第一个操作系统。为了与传统文件夹名称兼容,C:\Documents and Settings
现在是C:\Users
的链接。
有趣的是,尽管Vista引入了符号链接,但这种“Documents and Settings
”技巧实际上是一个普通的旧结。
如果有人对Windows 10中Windows文件资源管理器中的行为差异感兴趣:
拖放到目标目录:
symbolic link
:将symbolic link
移动到目标目录junction
:将original directory
移动到目标目录鼠标右键单击+属性:
symbolic link
:显示快捷方式属性junction
:显示original directory
文件夹属性鼠标左键单击左窗格(目录树):
symbolic link
:选择original directory
junction
:选择junction