如何在 Linux 中查找断开的符号链接

系统 Linux
在本教程中,我将向您展示几种在 Linux 中查找死链接(dangling link)的方法。

​在之前的文章中,我们解释了​​什么是 Linux 中的符号链接​​。符号链接(Symbolic links 或 symlinks)或软链接(soft links)用于在 Linux 中创建指向其他文件的快捷方式。符号链接在 Linux 中大量用于链接库。

​当链接指向的原始文件被删除时,该链接变为死链接。保留此类链接可能不是一个好主意。

现在问题来了,如何在 Linux 中找到断开的符号链接?一些发行版以不同的颜色显示断开的链接,但这不是找到所有此类断开链接的方法。

在本教程中,我将向您展示几种在 Linux 中查找死链接(dangling link)的方法。

方法一、使用 find 命令列出所有损坏的符号链接

神奇的 find 命令也可用于查找损坏的软链接。此命令的较新版本为此任务提供了专用选项。

要查找当前目录及其子目录中的所有死链接,可以使用 find 命令,如下所示:

find . -xtype l

它的输出将列出所有断开的链接:

┌──(linuxmi㉿linuxmi)-[~]
└─$ find . -xtype l
./www.linuxmi.com/xpstat
./www.linuxmi.com/linuxmi/linux
./www.linuxmi.com/linuxmi/linuxmi.com/ubuntu
./www.linuxmi.com/linuxmi/linuxmi
./linuxmi.com/share/inuxmi.md
./.mozilla/firefox/0gl7btzd.default-esr/lock
./linuxmi/link_dir

您可以将find 与 exec结合使用并删除它找到的链接。

方法 2:使用 symlinks 命令查找断开的符号链接

您还可以使用名为 symlinks 的专用命令来处理死链接。

您可能必须安装符号链接命令。它在 Debian 中可用。如果您使用的是 Ubuntu,则必须启用 Universe repository。

sudo apt install symlinks

安装后,您可以按以下方式使用它:

symlinks [options] path_to_directory

所以,如果你必须在当前目录中找到断开的链接,你可以像这样使用它:

┌──(linuxmi㉿linuxmi)-[~]
└─$ symlinks .
absolute: /home/linuxmi/test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

你注意到什么了吗?它只列出一个断开的链接,而 find 命令有 7 个断开的链接。这是因为如果你想递归搜索,你必须指定选项:

symlinks -r directory

不是这样。您还可以选择使用 symlinks 命令的 -d 选项删除所有断开的链接。

┌──(linuxmi㉿linuxmi)-[~]
└─$ symlinks -d .
absolute: /home/linuxmi/test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

事实上,符号链接可用于正确管理系统中的软链接。它可以警告您跨文件系统的链接,将杂乱的链接更改为相对的链接或缩短冗长的链接。

在 Linux 中,可以有多种方法来执行一项任务。查找断开的符号链接是一样的。我向您展示了两种方法,但肯定还有其他方法。

责任编辑:赵宁宁 来源: Linux迷
相关推荐

2023-02-06 17:49:35

Linux符号链接

2020-06-09 15:35:46

Linux符号链接

2023-02-13 11:26:03

符号链接Linux

2021-11-15 05:37:19

Linux 符号链接命令

2023-01-30 14:27:14

Linux进程

2020-05-15 07:00:00

Linux硬盘信息

2018-03-30 17:51:17

Linux命令查找文件

2016-12-07 17:45:44

Linux文件

2019-07-07 08:36:31

Linux命令端口号

2022-10-14 19:30:29

Linux

2019-09-24 19:00:41

Linuxrm命令unlink命令

2023-01-31 16:54:47

Linux端口

2023-09-06 17:06:51

LinuxVxVMSAN LUN

2018-07-10 08:59:07

LinuxArch Linux软件包

2022-07-10 21:20:11

C语言Linux

2023-03-21 09:31:30

Linux命令行文件夹

2018-12-12 10:10:08

Windows10Windows密钥

2021-08-09 11:31:54

Linux重复相片删除

2018-04-28 09:12:42

Linux

2022-05-25 08:41:48

Linuxfd 命令文件
点赞
收藏

51CTO技术栈公众号