符号链接相对于 Windows 风格快捷方式的优势

符号链接相对于 Windows 风格快捷方式的优势

当我主要使用 Windows 时,要创建快捷方式,我可以使用常规文件,详细说明其链接到的位置,扩展名为 .lnk 或 .url

现在,在 Linux 上,我主要使用符号链接,这是文件系统特定的功能。 Linux 似乎对基于文件的快捷方式没有太多支持,Windows 似乎对符号链接也没有太多支持。

我可以看到使用基于文件的快捷方式的优势(可以在任何文件系统上使用)。

我的问题是,为什么Linux 在基于文件的快捷方式上使用符号链接,在Linux 上,如何在不支持符号链接的文件系统(例如FAT32)上创建快捷方式?

答案1

使用符号链接有两个原因:

  1. 它几乎不使用硬盘上的空间。在创建期间保留元数据的文件系统(例如,ext2/3/4 系列)上,符号链接完全包含inode在文件系统元数据表中。

  2. 它是完全透明的。请参阅下面的解释:

假设/etc我创建了一个varlink指向 的符号链接/var。通过符号链接,我可以做到cd /etc/varlink/lib。如果我然后执行ls,我会看到 的内容/var/lib(即“ /etc/varlink”部分被“替换”为“ /var”)。我可以深入到/etc/varlink/lib/dbus,在里面我会看到的内容/var/lib/dbus。然而,即使我看到的实际上是后者的内容,$CWD(当前工作目录)仍然是前者。

同样,当符号链接针对文件时。假设这/etc/fstab是一个符号链接/opt/fstab。我可以针对/etc/fstab(例如,cat内容,或针对其内容执行)执行所有操作,sed而无需首先对其进行解码以找到其符号链接到的实际文件。幕后的文件系统将负责 I/O 重定向到实际文件。


第二个问题的答案是:我认为这根本不可能。至少,不是通过外壳。

然而,在 GUI 中,可能的让程序处理 Windows 的“.lnk”文件,将文件浏览器重定向到其他地方。但我不确定这样的程序是否曾经制定过。

答案2

符号链接的优点:

  1. 透明度:只有管理软件必须知道符号链接的存在。他们只是工作。仅当尝试打开快捷方式的软件知道它们是快捷方式时,快捷方式才有效。 Syn-links 适用于所有软件,包括旧版软件。

  2. 可链接:符号链接将允许链接到链接到链接......

  3. 更快:它们通常存储在 inode 中(这可能并不总是如此),使它们的查找速度更快。

缺点:

  1. 附加元信息可以存储在快捷方式中。

  2. 不需要文件系统支持。

  3. 您无需更新文件系统,而是更新系统中的每个其他程序,这使您可以向人们出售他们已经拥有的软件,但有快捷支持,从而增加收入。 (此优势依赖于您的用户不是免费的,您必须根据专有许可证获得软件许可。)

相关内容