SysInternals有一个程序junction.exe,可以在Windows 中创建Junctions(又名reparse points,又名symlinks)。
但是,Windows还附带了一个mklink,它似乎在做同样的事情。
有显着差异吗?
我倾向于认为,如果SysInternals有自己的程序,他们会发现标准MKLink程序存在缺陷。
SysInternals有一个程序junction.exe,可以在Windows 中创建Junctions(又名reparse points,又名symlinks)。
但是,Windows还附带了一个mklink,它似乎在做同样的事情。
有显着差异吗?
我倾向于认为,如果SysInternals有自己的程序,他们会发现标准MKLink程序存在缺陷。
Answers:
马克·鲁西诺维奇(Mark Russinovich)的junction
程序在设计时就考虑了特定目标:创建(和删除)接合点。多年来一直对其进行维护,但到目前为止尚未添加任何新功能。最新版本于2016年7月4日发布。
至于mklink
,它是Windows Vista和更高版本中可用的内置命令。它可以创建硬链接,连接点和符号链接。没有提供特定的删除功能;您可以简单地使用del
or rd
命令,具体取决于链接分别指向文件还是目录。
在Vista之前,Windows操作系统没有提供开箱即用地创建连接点的方法:您要么必须获得一份正式的Resource Kit的副本,要么使用第三方程序,要么自己编写一个。
该junction
工具的第一个版本已发布。引用官方网站:
Windows 2000及更高版本支持目录符号链接,其中目录充当到计算机上另一个目录的符号链接。[...]
不幸的是,Windows没有提供用于创建结点的工具-您必须购买Win2K资源工具包,该工具与
linkd
创建结点的程序一起提供。因此,我决定编写自己的结点创建工具:Junction。资料来源:交界处
该mklink
命令是Windows Vista早期Beta阶段引入的。
自2005年7月27日正式发布Beta 1以来,它就已经可用。最初,它只能创建符号链接和硬链接。稍后在2005年12月19日发布的社区技术预览版(CTP)中实现了创建连接点的功能。
显然,该命令直到2006年下半年才被完全忽略。这是我能够找到的最早参考资料:
您现在可以在Windows Vista中创建符号链接。
C:\test>ver Microsoft Windows [Version 6.0.5365] C:\test>mklink Creates a symbolic link. MKLINK [[/D] | [/H] | [/J]] Link Target [...]
也:
马尔科姆[MSFT](专家):
问:是否有一种真正简单的方法来建立符号链接?
答:打开CMD,然后输入“ mklink”。该工具将允许您创建结点,硬链接和符号链接。
文件或目录可以包含一个重新分析点,它是用户定义数据的集合。存储数据的应用程序和文件系统过滤器可以理解此数据的格式,您可以安装文件系统过滤器来解释数据并处理文件。
例如,重解析点用于实现NTFS文件系统链接和Microsoft远程存储服务器(RSS)。
资料来源:重整点数
NTFS文件系统支持三种类型的文件链接:硬链接,联结和符号链接。
资料来源:硬链接和连接点
硬链接是文件的文件系统表示形式,通过它多个路径可以引用同一卷中的单个文件。通过该文件的硬链接访问该文件的应用程序可以立即看到对该文件的任何更改。但是,目录条目大小和属性信息仅针对进行更改的链接进行更新。
资料来源:硬链接和连接点
联结(也称为软链接)与硬链接的不同之处在于,它引用的存储对象是单独的目录,联结可以链接位于同一计算机上不同本地卷上的目录。
资料来源:硬链接和连接点
连接点只能链接到本地卷上的目录;不支持远程共享的连接点。
来源:NTFS交汇点
符号链接是指向另一个文件系统对象的文件系统对象。指向的对象称为目标。
符号链接对用户是透明的。链接显示为普通文件或目录,并且用户或应用程序可以以完全相同的方式对其进行操作。
来源:符号链接
[符号链接]随Windows Vista对NTFS文件系统的修改而引入,但可通过Windows XP的筛选器驱动程序获得。
与NTFS交接点(从Windows 2000开始可用)不同,符号链接也可以指向文件或远程SMB网络路径。尽管NTFS交接点仅支持本地驱动器上的绝对路径,但NTFS符号链接允许使用相对路径进行链接。
Windows Vista / Windows 7中的默认安全设置禁止未提升权限的管理员和所有非管理员创建符号链接。
来源:NTFS符号链接
mklink
无论目标类型如何,均以普通方式制作),并且有“目录”符号链接(以方式制作mklink /d
)。最好为目标创建正确的链接类型。
Junction
根据链接页面,该文章于2010年9月发布。同样,链接到的页面MKLINK
的发布日期为2012年4月。这似乎强烈表明该页面Junction
是在将mklink
可执行文件添加到Windows 之前创建的。(我没有深入研究每一个最初出现的时间,因此是评论而不是完整的答案。如果有人想对此进行扩展并提出正确的答案,请成为我的客人。)