如何在 Linux 中创建符号链接 (Symlinks)


Linux 没有快捷方式,但它有符号链接 - 或通常称为符号链接。但符号链接到底是什么?如何创建一个?让我们来看看吧。

我们将在 Ubuntu 安装 上尝试命令,尽管语法在 所有 Linux 发行版 上的工作方式相同。有趣的是,符号链接也可以在 Mac PC 上创建

什么是符号链接?

如果您希望能够从多个位置访问文件,简单地复制它并不是一个好的解决方案。您正在浪费磁盘空间,更不用说由于存在多个文件而难以跟踪更改。

在基于 GUI 的操作系统中,您可以通过创建快捷方式来克服这个问题。对于基于 CUI 的操作系统(如 任何 Linux 发行版 ),答案是符号链接。甚至 Microsoft Windows 也可以利用 某些情况 中的符号链接。

符号链接或符号链接只是指向另一个文件或目录的文件 - 即使在完全不同的文件系统或分区中也是如此。打开符号链接可以访问相同的原始文件,任何更改也会反映在主文件中。

这也适用于权限 - 使用 chmod 更改符号链接文件的权限实际上会修改目标文件的权限。

符号链接的类型

符号链接也称为软链接。顾名思义,它并不是 Linux 上唯一的文件链接系统类型。在某些情况下,硬链接可以用作符号链接的替代方案,但有许多限制。

首先,硬链接只是指向相同索引节点 的文件名。虽然这使得它们在存储和访问速度方面非常高效,但也将它们限制为同一文件系统或分区中的文件。而且由于 Linux 中文件夹访问的工作原理 的怪癖,您也不能使用目录的硬链接。

另一方面,

软链接或符号链接更像是桌面快捷方式。每个软链接本质上是一个指向原始数据的小文件,但实际上并不直接链接到它。这意味着软链接也可以轻松地指向其他分区和文件系统上的文件和目录,没有任何限制。

硬链接 VS 软链接 – 使用哪种类型?.

软链接是最通用的链接形式,因为它们可以不受任何限制地用于跨多个文件系统的文件和目录。但为什么我们还要有硬链接呢?与符号链接相比,它们有什么优势吗?

嗯,从理论上讲,硬链接效率更高。由于它们使用相同的 inode,因此不会占用额外的磁盘空间,并且访问速度比软链接快得多。这就是为什么许多系统管理员会建议尽可能使用硬链接。

话虽这么说,但使用符号链接的缺点是最小的。现代计算机尤其不关心几千字节的额外存储,除非您用数百万个软链接填充系统,否则额外的文件大小很少有关系。

创建符号链接

符号链接(或者更确切地说,一般的文件链接)是使用 ln 命令创建的。默认情况下,该命令创建硬链接。要创建符号链接,您需要将 -s 标志附加到 ln 命令。

语法很简单。 ln 命令有两个参数——要链接的文件(或文件夹)的路径,以及要创建的链接文件的路径。

像这样:

ln -s user_names.txt 名称

这将创建一个名为名称的符号链接,连接到 user_names 文本文件。要查看符号链接是否实际创建,只需使用 ls 命令即可。

如您所见,Ubuntu 对不同类别的文件显示不同的颜色,目录用深蓝色表示,符号链接用浅蓝色(实际上是青色)表示。

我们也可以使用相同的语法为文件夹创建符号链接:

ln -s 示例 example_folder

要创建指向其他目录中的文件和文件夹的符号链接,只需使用它们的完整路径即可。例如:

ln -s Examples/example3.txt distance_example

符号链接的限制

符号链接是跨系统连接文件的好方法,而无需制作副本,但它们有其自身的局限性。是的,尽管软链接的限制比硬链接少,但仍然有一些事情需要记住。.

首先,ln 命令实际上并不验证创建的链接。这意味着可以输入实际不存在的文件名,并且不会出现任何错误。确认链接的唯一方法是尝试使用它并查看它是否指向正确的文件。

其次,虽然访问或更改符号链接的权限会更改原始文件的属性,但文件删除却不会。您可以安全地删除符号链接 而不影响链接的文件或目录。

在 Linux 中创建符号链接

使用终端创建符号链接的最大痛苦是难以访问分布在各个目录中的重要文件。明智的解决方案是从您的主目录本身创建指向此类文件的符号链接,例如桌面快捷方式。

与硬链接不同,符号链接可以轻松创建,没有任何限制,甚至可以连接到不同分区和文件系统中的目录或文件。请记住,这也意味着符号链接可能指向不存在的文件 - 您必须尝试访问该链接以验证该文件是否存在。

.

相关文章:


10.05.2023