绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
如何在 Linux 中查找断开的符号链接
2023-02-28 10:34:02

在之前的文章中,我们解释了什么是 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/gl7btzd.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 中硬链接的概念。


来自:Linux迷
链接:https://www.linuxmi.com/linux-broken-symlinks.html
分享好友

分享这个小栈给你的朋友们,一起进步吧。

Linux技术精选专区
创建时间:2020-07-08 10:30:23
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • dapan
    专家
戳我,来吐槽~