如何在 Linux 中管理符号链接

符号链接是直接链接到其他文件的文件。 在 Linux 系统中,符号链接用作快捷方式。

术语“符号链接”是“符号”和“链接”的组合,强调了这些文件作为对其他事物的符号引用的实用性。

所谓的“硬”链接更像是它们引用的文件的副本,而不是文字链接。 “软”或符号链接只是指向它们的目标。 删除这些链接对它们指向的文件没有任何作用,并且为了方便起见,可以创建尽可能多的符号链接。 这使得它们非常适合指向跨文件系统和分区的文件。

符号链接的使用

更改文件系统的底层结构以使单个应用程序更有效地运行将是一项艰巨的工作。 相反,符号链接通常用于使事情变得更简单,并创建人工文件层次结构供程序引用,而不会影响原始文件的位置。

符号链接的使用使适应不同的程序更容易,但它也使文件系统的分析复杂化。

符号链接问题

当符号链接正常工作时,它们会拼出实际存在的文件的清晰路径。 但是,失败的符号链接指向不存在或已被删除的文件。 这些符号链接会给人类用户和依赖于其准确性的程序造成混淆。

如果以符号链接为目标的文件被换出,则链接本身会继续指向新文件,而完全忽略其内容。 这种盲目信任功能使链接链接和相对链接成为可能。

特别是,如果链接引用第二个链接,而第二个链接又指向第一个链接,则链接链接可能会导致循环链接(无限长的链接循环)。

此类难题不一定仅由人为干预引起; 不理想的设备安装标准和某些自动化流程可能会导致大量不幸地产生所谓的“死链接”。 这正是管理技术派上用场的地方。

管理符号链接

在 Linux 系统中,有多种实用程序可随时用于处理符号链接。 coreutils 中的默认包含是 ln,这有助于从终端创建此类链接。

但是,要完全管理符号链接,您需要能够快速找到并分析它们。 为此目的值得考虑的一个简单的命令行选项被恰当地命名为 symlinks.

虽然一些 Linux 发行版如 Fedora 这个工具默认安装,其他的,比如 Ubuntu,没有。 要在 Ubuntu 中安装“符号链接”,只需打开一个终端窗口并输入以下内容:

创建符号链接

在 Linux 中从终端创建符号链接很容易。 Enter 接下来的代码,将“original-file.txt”更改为您选择的目标的名称和文件扩展名,然后将“linkname”更改为您想要的任何内容。

符号链接 Ln S 2 Hecho

ln 实用程序用于创建链接,当您运行它时它会这样做。 这 -s 包含在上面的命令中使生成的链接符号化。

也可以通过添加一个相对符号链接来创建 -r 到相同的命令如下:

符号链接 Ln Rs 2 Hecho

无论挂载点发生什么变化,相对链接仍然有效。

查找符号链接

上面提到的符号链接实用程序为我们提供了一种在给定目录中查找符号链接的简单方法。 执行此操作的命令如下:(将“directory-name”更改为要搜索的目录的完整路径。)

符号链接 V 2 Hecho

添加一个 r 此命令告诉符号链接递归检查指定目录中的文件。 如下所示:

符号链接 Rv 2 Hecho

如果您担心循环链接会出现问题,请小心使用递归。 循环链接是最终错误地循环回自身的链接; 它们可能会导致符号链接实用程序在尝试递归到其无限结构时挂起。

上面显示的命令的非递归版本将简单地将任何现有的循环链接显示为“悬空”,或者换句话说,已损坏。 正是符号链接工具能够进行的分析使其能够真正修复此类断开的链接。

修复符号链接

使用符号链接修复给定目录中的符号链接相对简单。 这是要使用的命令:

符号链接 Cds 2 Hecho

上面的命令一次执行多项操作。 它将找到的任何绝对链接转换为相对链接,删除悬空链接并缩短“冗长”链接(路径中有很多“../”的链接)。

如果您不确定运行此操作的潜在结果,您可以测试 -c 单独运行以下命令无需更改任何内容:

符号链接 T 2 Hecho

希望您现在对什么是符号链接以及如何有效地管理它们有了更好的理解。 查看其余的 符号链接实用程序的功能 在您的文件系统上运行更具体的操作。

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅