Windows中的各种链接类型是什么?如何创建它们?


Answers:


57

请注意,唯一不幸的区别是您需要管理员权限才能创建符号链接。IE,您需要提升的提示。(一种解决方法是可以通过将SeCreateSymbolicLinkPrivilege授予普通用户secpol.msc。)

术语说明:Windows快捷方式不称为“符号链接”;它们是外壳程序链接,因为它们只是Windows资源管理器外壳程序特别对待的文件。


符号链接:如何在NTFS文件系统上创建它们?

Windows Vista和更高版本在NTFS文件系统上支持Unix风格的符号链接 请记住,它们也遵循相同的路径分辨率–相对链接是相对于链接的位置而不是相对于当前目录创建的。人们经常忘记这一点。它们也可以使用绝对路径来实现。EG c:\ windows \ system32而不是\ system32(转到连接到链接位置的system32目录)。
符号链接是使用重新解析点实现的,并且通常具有与Unix符号链接相同的行为。

对于文件,您可以执行:

mklink  链接名 targetpath

对于目录,您可以执行:

mklink / d 链接名 targetpath

硬链接:如何在NTFS文件系统上创建它们?

Windows NT的所有版本都支持NTFS文件系统上的Unix风格的硬链接。在Vista和更高版本上使用mklink:

mklink / h 链接名 targetpath

对于Windows 2000和XP,请使用fsutil

fsutil硬链接 创建链接名targetpath

这些也和Unix硬链接一样工作-多个文件表条目指向同一个inode


目录连接:如何在NTFS文件系统上创建它们?

Windows 2000和更高版本支持NTFS文件系统上的目录连接。它们与符号链接的不同之处在于它们始终是绝对的,并且指向目录,而不指向文件。

mklink / j 链接名 targetpath

在没有的版本上,请从Sysinternals mklink下载junction

联结 链接名 targetpath

结点是使用重新解析点实现的。


如何在Windows中使用重新解析点安装卷?

为了完整起见,在Windows 2000及以后,重分析点也可以指向,造成持续性的Unix风格的盘坐骑

mountvol  mountpoint \\?\ Volume { volumeguid }

卷GUID由列出mountvol; 它们是静态的,但仅在同一台计算机内。


Windows资源管理器中是否可以执行此操作?

是的,您可以使用Shell扩展Link Shell Extension,它使创建上述链接变得非常容易。您可以在页面底部找到下载内容。

在NT4,Windows 2000,Windows XP,Windows XP64和Windows7中实现的NTFS文件系统支持称为硬链接(在此称为Hardlinks)的功能。硬链接提供了保留文件的单个副本但仍将其显示在多个文件夹(目录)中的功能。他们可以创建与POSIX命令LN包含 Windows资源工具包,该FSUTIL包含在Windows XP或我的命令行命令实用ln.exe工具。

该扩展名允许用户选择一个或多个文件或文件夹,然后使用鼠标完成所需链接的创建-硬链接,连接或符号链接,或者在文件夹的情况下,创建由硬链接或符号链接组成的克隆。所有支持NTFS 5.0或更高版本的Windows版本(包括Windows XP64和Windows7)都支持LSE。FAT文件系统不支持硬链接,连接点和符号链接,FAT文件系统也不支持克隆和智能复制过程。

可以使用右键菜单简单地选择源。

然后根据您选择的内容,右键单击目标文件夹并获得带有选项的菜单。

这使得创建链接非常容易。有关详尽的指南,请阅读LSE文档

下载可在其页面底部找到。

相关的MSDN URL:


40

在这个答案,我将试图勾勒出哪些不同类型的目录管理链接以及为什么它们是有用的,以及何时可以使用它们。当试图在您的文件卷上实现某种组织时,了解各种不同的类型以及创建它们是有价值的知识。

有关如何建立特定链接的信息,请参阅grawity答案

什么是链接?

链接是两个实体之间的关系。在目录管理的上下文中,链接可以看作是以下两个实体之间的关系:

  1. 目录表

    该表跟踪位于特定文件夹中的文件和文件夹。

    目录表是代表目录(也称为文件夹)的一种特殊类型的文件。表中的一个32字节条目代表其中存储的每个文件或目录。每个条目记录名称,扩展名,属性(归档,目录,隐藏,只读,系统和卷),最后修改的日期和时间,文件/目录数据的第一个群集的地址以及最终的大小。文件/目录。

  2. 资料丛集

    更具体地说,文件或目录的第一个群集。

    群集是可分配的用于容纳文件的最小逻辑磁盘空间。

关于这种关系的特殊之处在于,它允许一个人只有一个数据集群,但有许多指向该数据集群的链接,这使我们可以将数据显示为存在于多个位置。但是,有多种方法可以执行此操作,每种方法都有其自己的效果。

要查看其起源,让我们回到过去...

什么是外壳链接,为什么并不总是足够?

尽管听起来可能并不熟悉,但我们都知道这一点!毫无疑问,文件快捷方式是链接文件的最常用方法。这些是在Windows 9x的某些早期版本中发现的,并且已经存在了很长时间。

这些使您可以快速创建任何文件或文件夹的快捷方式,更专门用于沿着链接存储其他信息,例如在文件所在的工作目录,提供给程序的参数以及选项中喜欢是否最大化程序。

这种链接方法的不利之处在于,额外的信息要求这种类型的链接自己拥有一个数据集群来包含该文件。那么问题就不一定是占用磁盘空间,而是它是间接访问链接,因为在到达实际链接之前,首先必须请求数据集群。如果实际链接中引用的路径消失了,则外壳链接将仍然存在。

如果要对引用的文件进行操作,则实际上首先必须弄清楚该文件位于哪个目录中。您不能像在编辑.lnk文件一样简单地在编辑器中打开链接,而不是在链接文件。这锁定了许多可能的外壳链接用例。

交汇点链接如何尝试解决这些问题?

一个NTFS交接点允许人们创建到本地驱动器上目录的符号链接,其方式类似于普通目录。因此,您在磁盘上存储了一个文件目录,但是可以从多个位置访问它。

删除连接点时,将保留原始目录。删除原始目录时,保留连接点。枚举磁盘以检查必须删除的连接点是非常昂贵的。由于其实施,这是不利的。

NTFS交接点是使用NTFS重新解析点实现的,NTFS重新解析点是Windows 2000引入的NTFS文件系统对象。

NTFS重新解析点是NTFS文件系统对象的一种。重解析点通过向目录条目添加额外的信息来提供扩展NTFS文件系统的方法,因此文件系统过滤器可以解释操作系统将如何处理数据。这允许创建连接点,NTFS符号链接和卷安装点,并且是Windows 2000的分层存储系统的关键功能。

没错,重新解析点的发明使我们能够执行更复杂的链接方式。

NTFS交接点是一个软链接,这意味着它仅链接到文件名。这意味着每当删除链接时,原始数据保持不变 ; 但是,无论何时删除原始数据,原始数据都会消失

我还可以软链接文件吗?有符号链接吗?

是的,当Windows Vista出现时,他们决定通过提供NTFS符号链接来扩展NTFS文件系统对象的功能,该符号链接是一种软链接,其作用与NTFS交接点相同。但是可以应用于文件和目录。

它们再次具有相同的删除行为,在某些用例中,这对于文件来说可能是一件痛苦的事情,因为您不想让无用的文件副本流连忘返。这就是为什么硬链接概念也已经实现的原因。

什么是链接?与软链接相比,它的行为如何?

硬链接不是NTFS文件系统对象,而是硬文件链接(详细来说,硬链接是指MFT条目,因为它存储了有关实际文件的额外信息)。MFT条目具有一个字段,可以记住硬链接到文件的时间。只要至少存在一个指向数据的链接,该数据仍将可访问。

因此,数据不再依赖于单个MFT条目存在。只要周围有硬链接,数据就可以保留下来。这样可以避免在不想记住原始文件所在位置的情况下意外删除。

例如,您可以制作一个文件夹,其中包含“我仍然要观看的电影”,一个文件夹“我正在度假的电影”以及一个文件夹“喜欢的电影”。不包含这些电影的电影将被正确删除,而包含这些电影的电影将继续存在,即使您已经看过电影也是如此。

什么是卷装入点链接?

一些IT或商务人士可能不喜欢必须记住或键入系统所具有的不同驱动器号。到底是M:什么意思?是音乐吗?电影?楷模?地图?

过去一年中,Microsoft一直在努力将用户从迁移work in drive C:work in your user folder。毫无疑问,我可以说存在UAC和权限问题的用户是不遵循这些准则的人,但这并不使他们感到奇怪:

为什么您每天甚至应该查看除个人文件之外的任何内容?

卷安装点是专业的IT方式,不受驱动器号的限制,并且具有对其有意义的目录结构,但是...

我的文件位于不同的位置,我可以使用链接将它们放在一起吗?

在Windows 7中,正是为此目的引入了。完成了此文件夹,该文件夹和该文件夹中的音乐文件。从较低的角度看,一个库可以看作是多个链接。它们再次被实现为可以包含多个引用的文件系统对象。从本质上讲,这是一对多的关系 ...

我的大脑爆炸了...您能总结一下何时使用它们吗?

  • 快捷链接:当您需要快速访问可执行文件或网站,您经常启动的文件或需要为应用程序指定参数而批处理文件过于繁琐时,请使用它们。当您打算通过快捷方式操纵文件时,请勿使用它。

  • 连接点:当您希望目录位于其他位置时使用它们,这使您可以将目录移动到更快或更慢的驱动器上,而不会失去访问原始路径的能力。另一个用途是当您想通过另一个路径访问目录时。这些不能用于链接到共享。

  • 软链接:在快捷链接不足的地方使用它们,当您确实打算通过其快捷键来操纵文件时,通常使用它。或者,当您希望文件位于更快或更慢的驱动器上而又不会失去访问原始路径的能力时。

  • 硬链接:当您只希望在删除所有硬链接后才删除文件时,请使用它们。不能用于文件夹。

  • 卷安装点:当驱动器号用完时,或者发现通过路径而不是通过驱动器号访问卷更可行时,请使用它们。

  • 库:当您在许多不同位置拥有相同类型的文件并且需要将它们放在一起时,请使用它们,这支持可移动驱动器,因此在插入时可方便地使可移动驱动器上的文件夹显示在计算机上的文件夹之间它。您可以从树视图下库下方的文件夹树中单击单个文件夹,这有助于在两个文件夹之间移动文件。


库像快捷键链接一样是外壳层的,对吗?
Medinoc

@Medinoc:不,它们汇总了多个位置的内容。
Tamara Wijsman 2014年

1
但是它们是在文件系统级别执行此操作的,例如cmd.exe并dir可以列出聚合的内容(在这种情况下,它们在文件系统中的位置,我找不到它),或者它们仅聚合在外壳程序级别,只有Windows资源管理器和文件对话框可以显示它们?我的印象是后者,但是除非我写错我的问题,否则您的“否”将对此提出质疑(我的意思是说“库是shell级的,就像快捷链接,是吗?”)。
Medinoc

@Medinoc:它们是位于的文件C:\Users\{User}\AppData\Roaming\Microsoft\Windows\Libraries
Tamara Wijsman

1
@Pacerier:Windows使用旧的定位系统,例如,您可以在其中移动音乐文件夹的属性。库是一个新增功能,因此操作系统本身几乎不使用。因此,我怀疑是否会破裂;因为它们仅用于显示目的,所以……
Tamara Wijsman 2015年

8

如果您使用的是Windows Vista或更高版本,并且具有管理员权限,则可以签出mklink命令(这是一个命令行工具)。我不确定它实际上是如何符号链接的,因为Windows会给它带快捷方式的小箭头图标,但是对文本文件进行的快速notepad ++测试表明它可能适用于您要查找的内容。

您可以运行不带参数的mklink以获得快速使用指南。

希望对您有所帮助。


mklink使用NTFS交接点(我相信这就是它们的名字)来或多或少地完美地复制Unix风格的链接。Windows可以说这是一个连接点,因此将使用传统的箭头图标。iirc,您可以通过一些注册表修改来删除它,但是我不记得在哪里。
jcrawfordor 2011年

2
@jcrawfordor:磁盘结构是 reparse points”。连接点和符号链接是两种不同类型的重新解析点。卷安装点是第三位。
grawity 2011年

1
是的,@ Gemini mklink专门实现了符号链接,使其与Unix一样工作
grawity 2011年

感谢您的确认。我从没和他们玩太多,所以我只想包括disclaim.h;)
GeminiDomino 2011年

2

本文有一些区别

一个重要的区别是,从某种意义上说,win7之前的联结有点不安全,因为删除它们会删除目标目录。

http://cects.com/overview-to-understanding-hard-links-junction-points-and-symbolic-links-in-windows/

切勿在Win2k,Win2003和WinXP中使用资源管理器,del或del / s命令或任何递归遍历目录的实用程序删除连接点,因为它们将删除目标目录及其所有子目录。而是使用rmdir命令,链接的实用程序或fsutil(如果使用WinXP或更高版本)或第三方工具来删除连接点,而不影响目标。在Vista / Win7中,可以安全地使用资源管理器或rmdir和del命令删除连接点。

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.