为什么Windows的更高版本继续使用快捷方式文件而不是符号链接?


68

Windows XP和更高版本支持符号链接。但是,Windows继续使用快捷方式文件(实际上,该快捷方式文件将链接文件的位置存储为文本)。为什么?


25
为什么新版本的Windows(和Office)以ANSI格式而不是UTF-8保存文本文件?无论犯下不相容不合理性和或支持遗留系统...
retrography

9
Windows XP和更高版本在某些文件系统上支持符号。符号链接可以在硬盘上的NTFS文件系统上工作,但是如果将其复制到普通FAT 32格式的USB记忆棒或UDF格式的CD-ROM上则不起作用,并且如果将其复制到网络服务器上(如您通常不知道远程服务器使用的操作系统或文件系统。可以愉快地复制LNK快捷方式文件并在所有这些快捷方式中使用。
GAThrawn

12
Windows .lnk文件与Linux .desktop文件更类似于符号链接。
Arturo TorresSánchez'16

3
符号链接是棘手的安全性(混淆的代理问题)
CodesInChaos

2
那么,当NTFS出现时,您是否停止在浏览器中使用书签?听起来比较荒谬,但前提是您认为快捷方式只不过是指向文件的指针而已,事实并非如此。
a安

Answers:


106

我猜有很多原因

  1. 您可以针对外壳程序而不是文件系统解释的同一个EXE的几种不同快捷方式存储不同级别的兼容性。
  2. 某些快捷方式链接实际上在文件系统上不存在。其中一些只是对GUID的引用,即由Shell解释的特殊字符串。
  3. 您不能在符号链接中包含开关。当然,您可以指向EXE,但不能告诉EXE任何其他参数。
  4. 您不能为符号链接选择图标。
  5. 您无法在符号链接中选择要使用的目录。
  6. 快捷方式文件不仅指向文件,还可以是超链接或协议链接(对于.URL文件)。
  7. LNK文件可以存在于任何文件系统上。对于Windows,NTFS是由文件系统本身处理符号链接。
  8. 确实没有必要替换它们。它们可以工作,它们很小,如果需要添加比上面列出的功能更多的功能,将来可以扩大规模。
  9. 创建符号链接需要管理权限(有充分的理由-否则,只需很少的工作即可执行将无害文件重定向到恶意文件的操作)

会有更多的原因,但是我认为这足以让您入门:)-@grawity提供了一个链接,这里将提供有关该主题某些部分的进一步阅读。


2
此外,文件快捷方式会缓存有关目标的某些元数据,并且如果目标已移动,则在外壳程序级别进行解释可以使快捷方式由外壳程序进行更新,这对于符号链接而言将更加困难。通常,有关快捷功能的各种有趣内容,请再次参阅“ 事物”。
grawity '16

5
@grawity将这些文件移到文件系统处理中会不会有什么主要的好处?我本以为.lnk文件在需要时有无限的空间来扩展进一步的功能,同时仍然保持向后兼容性,并且它们没有太多的开销。也许将其移至文件系统会有些过度设计?不过,我绝不是文件系统内部工作的专家。
Jonno

3
没错,FS本身不会使用大多数此类信息-许多.lnk功能实际上是特定于Explorer的,因此将所有内容存储为重新解析点而不是文件将是过大的。
grawity '16

3
只是想指出,据我所知,LNK文件不能用于定位URL(超链接)。您可以在Windows中使用相同的快捷方式创建工具来创建URL快捷方式,但最终结果是.URL文件(纯文本,本质上是INI文件),而不是.LNK文件(二进制)。
Michael Becker

3
或者start http://superuser.com选择默认的浏览器,就像使用真正的URL快捷方式一样。就是说,您可以使.LNK文件指向URL。最后,它们是“序列化的COM名字对象”,并且可以使用新的名字对象类型扩展COM系统。
MSalters '16

6

符号链接不过是包裹在少量文件系统魔术中的路径。有多种方法可以使其失效(“中断”),其中大多数涉及一个或多个文件或目录被重命名。由于Windows是消费类软件,因此您可能会在“典型”安装上运行大量设计不当的程序。结果,这种破损要比在服务器上(理论上)每个接触磁盘的程序都是已知数量的服务器上更难避免。

快捷方式不受大多数​​形式的破坏的影响,因为它们独立于路径跟踪目标。这使它们更加用户友好。它们是专门为消费者设计的,采用“只要按照我的意思做,不要在细节上打扰我”的方法。

现在,您可以(在某种程度上)使用硬链接,但是硬链接具有许多复杂的属性,这使其不适合消费者使用。特别是,文件完全太容易获得新的inode编号,并且在遇到硬链接时某些备份软件会中断得非常明显。前者可以(也许)通过文件系统隧道解决(实际上,快捷方式是如何解决相关问题的),但是后者则要困难得多。

(我可能还应该注意,通过隧道“解决”硬链接绝对是不平凡的,因为这不仅仅是重新连接“丢失”的元数据的问题。inode绑定在磁盘分配方案中,因此您不能随便合并或事后重新分配它们,而无需花费很多精力。由于快捷方式使用其他易于创建隧道的元数据(例如创建时间),因此不会出现此问题。)

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.