如何在 Linux 上查找和删除损坏的符号链接

使用符号链接,您可以对一个文件拥有多个访问点,而无需复制它。 对原始文件所做的任何更改都将立即在符号链接中可用。 但是,如果您移动或删除原始文件,则指向该文件的符号链接将无法使用或损坏,因为它将不再有可指向的内容。 损坏的符号链接会保留在系统上,并且在您尝试使用它之前不会显示任何错误。 因此,最好删除指向不存在文件的损坏符号链接。

这篇文章介绍了如何在 Linux 操作系统上查找和删除损坏的符号链接。 我们已经在 Ubuntu 20.04 上演示了此处显示的命令,但是,您可以在任何 Linux 发行版上使用它们。

在 Linux 上查找和删除损坏的符号链接

在这种方法中,我们将看到如何在 Linux 操作系统中查找和删除损坏的符号链接。

要查看当前目录中的符号链接,请运行以下命令:

$ ls -l

在下面的输出中,您可以看到两个符号链接; 一个指向文件,另一个指向目录。

当符号链接指向的文件或目录被删除或移动到另一个位置时,符号链接就会损坏或无法使用。 因为我们在当前目录中有 2 个符号链接。 让我们删除这些符号链接指向的文件和目录。

$ rm myfile
$ rm -r myonedrive

现在,如果我们运行 ls 命令,我们将看到符号链接以红色列出,表明它们是损坏的符号链接。

还有另一种方法可以使用 Find 命令列出当前目录中损坏的符号链接。 此命令不是列出所有目录内容,而是仅列出损坏的符号链接。

要查找特定目录中所有损坏的符号链接,请使用以下命令:

$ find /path/to/directory -xtype l

要在当前终端目录中查找损坏的符号链接,请使用以下命令:

$ find . -xtype l

此命令将仅列出当前目录中损坏的符号链接,您可以一一删除。

您还可以使用单个命令查找并删除损坏的符号链接,如下所示:

$ find . -xtype l -exec rm {} ;

此命令从当前目录中查找并删除所有损坏的链接。 要验证是否已删除损坏的链接,请运行以下命令:

$ find . -xtype l

您现在将看到没有损坏的符号链接,因为它们已被删除。

删除损坏的符号链接的替代方法

还有两种方法可用于删除 Linux 操作系统中损坏的符号链接,如下所示:

使用 unlink 命令

要删除损坏的符号链接,请键入 unlink,后跟符号链接名称,如下所示:

$ unlink symlink_name

使用 rm 命令

要删除损坏的符号链接,请键入 rm,后跟符号链接名称,如下所示:

$ rm symlink_name

您还可以使用 rm 命令一次删除多个符号链接:

$ rm symlink1 symlink2 symlink3

损坏的符号链接应从系统中删除,因为它们指向不存在的文件或目录。 在这篇文章中,我们介绍了如何使用三种不同的方式在 Linux 操作系统中查找和删除损坏的符号链接。