What is the difference between NTFS Junction Points and Symbolic Links?
从高层次上讲,NTFS交汇点和符号链接之间唯一明显的区别是,交汇点只能作为目录,而SymLink也可以定位文件。
两者之间还有什么其他区别?
(请注意,我已经看到了这个问题,我所寻找的内容有所不同-该问题正在寻找一个利弊列表,我正在寻找一系列技术差异)
符号链接具有更多功能,而结点由于其局限性而似乎几乎是旧功能,但是这些限制的安全隐患明确说明了为什么可能会比符号链接更喜欢结点。远程定向使符号链接更具功能,但也提高了其安全性,而结点则更安全,因为它们被约束在本地路径上。因此,如果您希望使用本地链接并可以使用绝对路径,那么最好使用路口;否则,请考虑符号链接以了解其附加功能。
**速度/复杂性差异声明来自Wikipedia条目中有关NTFS重解析点的未经验证的声明(很好的阅读)。*
其他NTFS链接比较
这是关于此主题的其他一些比较,但是在考虑路口时,这些比较可能会误导人,因为它们没有列出我上面列出的好处。
从这里拍摄(入门读物不错)
从MKLink的SS64页面
关于Terminology的评论
交界点是重定点(可以描述为符号链接)
除了前面提到的处理方式上的差异外,NTFS Junctions和NTFS Symbolic链接实际上以相同的方式(重新分配点)执行相同的操作。实际上,从技术上来说,Junction是一个"符号链接",在这个词的更一般意义上,有时文档可能将Junction称为符号链接,如此处的情况。在这种情况下,"符号链接"并不表示NTFS符号链接不同于结(请参阅下文)。
NTFS
即使OP对此进行了指定,也值得指出的是,"符号链接"是一个非常通用的术语,并不特定于NTFS。因此,具体地说,此比较是关于NTFS交汇点与NTFS符号链接的。
我发现这些差异最有用的地方:
http://blogs.msdn.com/b/junfeng/archive/2006/04/15/576568.aspx
http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx
Postulate: Symlink is to Junction in Windows as Symlink is to Hardlink in Unix.
http://en.wikipedia.org/wiki/Symbolic_link#Windows_7_.26_Vista_symbolic_link
Windows 7 and Windows Vista support symbolic links for both files and directories with the command line utility mklink. Unlike junction points, a symbolic link can also point to a file or remote Server Message Block (SMB) network path. Additionally, the NTFS symbolic link implementation provides full support for cross-filesystem links. However, the functionality enabling cross-host symbolic links requires that the remote system also support them, which effectively limits their support to Windows Vista and later Windows operating systems.
http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/
A symbolic link, as created by Windows, is much similar to a directory junction, but unlike a directory junction it can point to a file or a remote network file or directory. The target may be defined as a path relative to the symbolic link position, or an absolute path in the current volume or another one. Also note that symbolic links to files are different from symbolic links to directories and the target must match the definition.
在功能上,一旦在Windows中创建,就没有真正的区别。但是,它们之间的区别很大。连接只能用于创建到同一驱动器或不同驱动器上的文件夹的链接,但仅当这些驱动器位于本地系统上时(您不能通过网络创建到文件夹的连接链接。)符号链接但是,没有相同的限制。符号链接可用于链接到文件或文件夹,并且这些文件或文件夹可以位于同一系统(同一驱动器或不同驱动器)上或网络共享上,并且可以使用相对位置符号(" \\ system2 \ foldera \ file.txt"," d:\ foldera \ file.txt"," \\ system2 \ foldera"," d:\ foldera"或" d:\ foldera \ folderb ..",并带有结果链接最后两个示例位于同一位置。)相对位置符号可以是"。"," ..",当前驱动器的相对功能(如果当前驱动器是c :,则指定" \ tempa \ folderb"会导致指向c:的链接) \ tempa \ folderb)和当前目录的相对位置(如果当前目录为d:\ foldera \ folderb,则指定" d:file.txt"将导致指向d:\ foldera \ folderb \ file.txt的链接。)
总结起来:交接点仅限于本地系统上的文件夹,而符号链接可以创建指向可通过UNC路径或本地系统访问的文件夹或文件的链接,这些文件夹或文件在如何指定这些位置方面更具通用性。基本上,符号链接是交汇点和硬链接的更通用的替代品。另外,在创建跨平台UNC路径链接时,符号链接与Unix和Linux兼容。
希望这能以令人满意的方式回答您的问题。
编辑以纠正印刷错误。
链接外壳扩展程序http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html,是创建和查看多种链接的好工具。它还具有出色的文档。
[在完整安装中,如果您正在查看高级链接,它将添加一个新的属性选项卡。在还会为各种链接类型添加图标叠加箭头-如果未显示,请滚动至FAQ部分。 Windows仅支持13个覆盖层。他显示了一个注册表解决方法。其信息实用性的一个示例:尝试获取您认为是文件夹的权限失败,但实际上是系统提供的Junction Link,通常用于与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" Reparse Point"技术的替代方法。
Microsoft解释说,符号链接的唯一目的是与Unix更兼容。
MSDN :"Symbolic links have been designed to aid in migration and application compatibility with UNIX. Microsoft has implemented its symbolic links to function just like UNIX links."
Vista也是第一个使用链接来发挥其功能的OS。为了与旧文件夹名称兼容,
有趣的是,尽管Vista引入了符号链接,但这种"
除了u8it的出色答案之外:
如果有人对Windows 10中Windows File Explorer中的行为差异感兴趣:
拖放到目标目录:
-
symbolic link :将symbolic link 移动到目标目录 -
junction :将original directory 移动到目标目录
右键单击+属性:
-
symbolic link :显示快捷方式属性 -
junction :向您显示original directory 文件夹属性
左键单击左窗格(目录树):
-
symbolic link :选择original directory -
junction :选择junction