NTFS 连接点和符号连接点的区别是什么?

在高层次上,新界东终点站连接点符号连结之间唯一明显的区别是 Junctions 只能是目录,而 SymLinks 也允许是目标文件。

两者之间还存在哪些其他差异?

(注意,我已经看过了 这个问题,我所寻找的是一个有点不同的问题-这个问题是一个正面和反面的列表,我正在寻找一组技术差异)

109702 次浏览

我认为最能体现这些差异的地方是:

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

Windows7和 WindowsVista 使用命令行实用程序 mklink 支持文件和目录的符号链接。与连接点不同,符号链接还可以指向文件或远程服务器消息块(SMB)网络路径。此外,NTFS符号链接实现提供了对跨文件系统链接的全面支持。然而,启用跨主机符号链接的功能要求远程系统也支持这些功能,这实际上限制了它们对 Windows Vista 和以后的 Windows 操作系统的支持。

Http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/

由 Windows 创建的符号链接与目录连接非常相似,但与目录连接不同,它可以指向文件或远程网络文件或目录。目标可以定义为相对于符号链接位置的路径,或者当前卷或另一个卷中的绝对路径。还要注意,指向文件的符号链接与指向目录的符号链接不同,目标必须符合定义。

最近在 Windows 中引入了符号链接: 来自 Vista。

符号链接不应被视为替代现有 NTFS“重置点”技术。

Microsoft 解释说,Symbolic 链接的唯一目的是与 Unix 更加兼容。

符号链接旨在帮助迁移和应用程序与 UNIX 的兼容性。微软已经实现了符号链接的功能,就像 UNIX 链接一样。

Vista 也是第一个将链接用于自身功能的操作系统。为了与遗留文件夹名兼容,C:\Documents and Settings现在是到 C:\Users的链接。

有趣的是,尽管 Vista 引入了符号链接,但这个“ Documents and Settings”技巧实际上是一个普通的老连接。

在功能上,在窗口中,一旦创建,就没有真正的区别。然而,他们之间在他们能做什么方面有很大的不同。连接只能用于创建指向文件夹的链接,无论是在同一个驱动器上还是在不同的驱动器上,但只有当这些驱动器在本地系统上时才能使用(您不能通过网络创建指向文件夹的连接链接)但是,符号链接没有相同的限制。符号链接可以用来链接到文件或文件夹,这些文件或文件夹可以位于同一个系统(相同的驱动器或不同的驱动器)或网络共享,可以利用相对位置符号(“ system2 foldera file.txt”,“ d: foldera file.txt”,“ system2 foldera”,“ d: foldera”或“ d: foldera folderb”)。."最后两个例子的结果链接是相同的位置。)相对位置符号可以是“。”,".."当前驱动器相对函数(如果当前驱动器是 c: ,那么指定“ tema folderb”会导致链接到 c: tema folderb)和工作目录相对函数(如果工作目录是 d: foldera folderb,那么指定“ d: file.txt”会导致链接到 d: foldera folderb file.txt)

总而言之: Junctions Point 仅限于本地系统上的文件夹,而 Symbolic Links 可以创建指向通过 UNC 路径或本地系统上可访问的文件夹或文件的链接,在如何指定这些位置方面具有更多的通用性。符号链接基本上是一个更多才多艺的接点和硬链接的替代品。另外,当创建跨平台 UNC 路径链接时,符号链接与 Unix 和 Linux 兼容。

希望这能以令人满意的方式回答你的问题。 为纠正排印错误而编辑。

链接外壳扩展,http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html,是一个伟大的工具来创建和查看许多种类的链接。它还有优秀的文档。

[在一个完整的安装,它添加了一个新的属性选项卡,如果你正在寻找一个高级链接。At 还为各种链接类型添加了图标覆盖箭头——如果这些没有显示,则滚动到 FAQ 部分; Windows 只支持13种覆盖; 他显示了一个注册表解决方案。它在信息方面的有用性的一个例子: 试图获得你认为是一个文件夹的特权没有成功,但实际上是一个系统提供的连接链接,通常用于与旧版 Windows 兼容的目的。]

当为本地系统上的目录创建连接和符号链接时,它们的作用基本相同。

然而:

它们在网络上的行为不同

如果你认为连接链接是“欺骗操作系统定位的快捷方式”,那么你就会对它们的用途和破坏它们的因素有一个很好的实用的比喻。主要区别在于,如果复制符号链接或连接,它只复制包含指针的文件,而不复制目标(如快捷方式)。与快捷方式一样,您可以删除符号链接或连接链接,而无需删除目标文件/文件夹。[硬链接,文件只有删除最后一个链接-包括从回收站删除。查看 LSE 中这些链接的 properties 标记,查看 Hard Links 的目标或引用计数。]

硬链接或快捷方式是唯一的链接类型,可以移动,没有副作用,如破坏或复制整个目标。移动目标总是会中断链接,尽管它们可以很容易地在 properties 选项卡中更新(用 LSE 显示) ,或者用 LSE 重新创建(如果复杂的话)。

创建符号链接需要管理员特权,而 Junctions 不需要。再加上 Junctions 广泛的内部操作系统使用,表明 Windows 以一种直观的、预期的方式来处理它们。[对于来自系统文件夹(来自 Win 10的经验)的意想不到的副作用,一定要小心。]

[ Link Shell Extension 的一些特定于备份的特性非常有用——简而言之,它可以在标准文件夹中创建几种类型的可更新的符号链接结构,用于挂起的备份目的。]

符号链接具有更多的功能,而连接由于其局限性似乎几乎是一个遗留特性,但是这些局限性的安全含义特别说明了为什么连接可能优先于符号链接。远程定位使符号链接更具功能性,但也提高了它们的安全性,而连接更安全,因为它们受限于本地路径.因此,如果您想要一个本地链接,并且可以使用绝对路径,那么最好使用一个连接; 否则,考虑一个符号链接作为它的附加功能。

enter image description here

* 速度/复杂性差异的声明来自于维基百科关于 NTFS 修复点的条目 (一个好的阅读)中的未经证实的声明。

我不知道你在说什么


其他 NTFS 链路比较

这里有一些关于这个主题的其他比较,但是当考虑连接时,这些比较可能会产生误导,因为它们没有列出我上面列出的好处。

摘自此处 (一个很好的介绍性阅读)

enter image description here

来自 香港邮政连结 SS64页

enter image description here


术语评论

连接点是重复点(可以描述为符号链接)

除了前面提到的处理方式不同之外,NTFS 连接和 NTFS 符号链接实际上以相同的方式做着同样的事情(重解析点)。事实上,从技术上讲,Junction 是一个更一般意义上的“符号链接”,有时文档可能会将 Junction 称为符号链接 就像这里的情况一样。在这情况下,「符号连接」并不表示 NTFS符号链接与路口不同(见下文)。

NTFS

尽管 OP 指定了这一点,但值得指出的是,“符号链接”是一个非常普遍的术语,不是 NTFS 特有的。因此,具体来说,这个比较是关于 NTFS 连接和 NTFS 符号链接的。

除了 u8it 的精彩回答:

如果有人对 Windows 10中 Windows 文件资源管理器的行为差异感兴趣:

拖放到目标目录:

  • symbolic link移动到目标目录
  • junction: 将 original directory移动到目标目录

鼠标右键点击 + 属性:

  • symbolic link: 显示您的快捷属性
  • 显示 original directory文件夹属性

左键单击 在左边的窗格里(目录树) :

  • 选择 original directory
  • 选择 junction