如何在 Linux 中查找和修复损坏的符号链接

想了解更多关于删除系统上损坏的符号链接的信息吗? 也许有人告诉你死的符号链接是如何占用你存储设备上的空间的,现在你想彻底摆脱它们。

幸运的是,您可以在 Linux 计算机上下载几个实用程序来管理符号链接。 这些工具还将帮助您找到损坏的软链接并永久修复它们。

在这里,我们将讨论如何使用报告和修复系统上损坏的符号链接 符号链接寻找 命令。

一般来说,每个计算机系统都有两种链接——软链接和硬链接。 硬链接是将特定名称与系统上存在的文件链接起来的目录条目。 这些是存储在存储设备特定地址中的原始文件。

另一方面,软链接是将两个目录或文件相互链接的文本字符串。 程序快捷方式很棒 example 的符号链接。 假设文件 A 与文件 B 有一个符号链接。这意味着文件 A 将存储文件 B 的绝对或相对路径。

要创建符号链接:

  1. 按启动终端 Ctrl + Alt + 在你的键盘上。
  2. 创建一个名为的新文本文件 文本.txt.
    touch text.txt
  3. 链接另一个文本文件 (另一个.txt) 与您刚刚创建的文件 (文本.txt)。
    ln -s text.txt another.txt

您刚刚使用符号链接将两个不同的文本文件链接在一起。 这 ln 命令是在基于 Linux 的操作系统上创建符号链接的默认方式。 这 -s 在上述命令中代表符号链接。

符号链接的主要问题是,如果您删除或移动目标文件,符号链接不会自动删除。 相反,该链接现在指向一个甚至不存在于您的系统上的文件。 此类链接称为悬空链接、损坏链接、孤立链接或死链接。

首先,您需要确认系统中存在符号链接。 您可以使用 grep 命令。

ll | grep txt

上面的命令将列出与当前工作目录中的文本文件关联的所有符号链接。

现在,如果我们要通过删除父文本文件(文本.txt):

rm text.txt

符号链接将中断并且不会从您的系统中删除。 您可以通过键入 ll | grep txt 再次在终端中执行命令。

尽管几个损坏的符号链接不会对您的计算机造成任何伤害,但它很快就会逐渐变成一千个。 这就是为什么需要监控系统上的悬空链接的原因。

修复这些损坏的符号链接的唯一方法是删除它们。 您的系统包含数百个悬空链接,没有人有时间手动检查这些链接。 在这种情况下,Linux 工具和命令被证明是非常有用的。

Symlinks 是一个强大的实用程序,它为您提供了管理和修复系统上损坏的符号链接所需的所有工具。 由于默认情况下大多数 Linux 发行版上都没有安装它,因此您必须手动安装它。

您可以使用 Pacman 在 Arch Linux 上安装该软件包:

sudo pacman -S symlinks

在 Fedora:

sudo dnf install symlinks

在 CentOS 上:

sudo yum install symlinks

在基于 Debian 的发行版上:

sudo apt-get install symlinks

如果您正在运行 Ubuntu,在安装符号链接包之前,您必须将 Universe 存储库添加到系统的存储库列表中。

sudo add-apt-repository universe

成功安装符号链接后,您需要检查系统上的孤立链接。 为此,请输入:

symlinks .

. (点) 字符是指当前工作目录。 如果您想报告您的 /家 目录,你可以通过输入:

symlinks /home

如果您的系统上存在断开的链接,您将获得如下所示的输出。

dangling: /home/sharmadeepesh/another.txt -> test.txt

要快速删除报告的符号链接,您可以使用 -d 使用默认命令标记。

symlinks -d .

删除悬空符号链接 /家 目录,输入:

symlinks -d /home

这一次,输出不仅会列出损坏的链接,还会报告该链接现在已被删除。

dangling: /home/sharmadeepesh/another.txt -> test.txt
deleted: /home/sharmadeepesh/another.txt -> test.txt

要递归地报告和删除给定目录中损坏的符号链接,请使用 -博士 使用默认命令标记,其中 d 代表删除和 r 代表递归。

symlinks -dr .

使用查找命令

寻找 命令预装在每个 Linux 系统上。 顾名思义,您可以使用此命令搜索文件夹和文件。 这 寻找 命令还允许您轻松报告和删除系统上的死软链接。

要列出当前工作目录中损坏的符号链接,请键入:

find . -xtype l

要查找系统上任何其他目录中存在的损坏链接,只需替换 . (点) 带有目录路径的字符。 以下命令将在 /家 目录。

find /home -xtype l

您还可以列出系统未使用的损坏的符号链接。

find . -xtype l ! -exec test -e {} ; -print

要检查这些断开的链接指向的位置,请使用:

find . -xtype l -exec ls -l {} +

根据系统上损坏的符号链接的数量,您将获得如下所示的输出。

lrwxrwxrwx 1 root root 19 Feb 21 11:53 /home/sharmadeepesh/another.txt -> /home/sharmadeepesh/text.txt

此外,您可以使用以下命令一次性删除损坏的符号链接。

sudo find . -xtype l -delete

还有另一种删除死链接的方法:

sudo find . -xtype l ! -exec test -e {} ; -delete

符号链接对 Linux 系统很重要,因为它们简化了计算机上的路径解析和管理过程。 但是,如果不加以注意,损坏的符号链接可能会占用您系统存储的很大一部分,而您甚至都不知道。 在这种情况下,实用程序如 符号链接寻找 参加进来。

如果您是初学者并且想提高您在 Linux 方面的专业知识,那么时不时地学习新的命令是一个完美的方法。 用户应该知道他们需要哪个命令才能有效地解决给定的情况。