如何在Linux中查找损坏的符号链接
时间:2020-03-05 15:26:45 来源:igfitidea点击:
符号链接(Symbolic links / symlinks)或者软链接用于在Linux中创建指向其他文件的快捷方式。
符号链接在Linux中的链接库中大量使用。
当链接指向的原始文件被删除时,该链接将变为悬空链接。
保持此类链接可能不是一个好主意。
现在出现了问题,如何在Linux中找到断开的符号链接?
有些发行版以不同的颜色显示断开的链接,但这并不是找到所有此类断开的链接的方法。
在Linux中查找损坏的符号链接
在本教程中,将介绍在Linux中查找悬空链接的几种方法。
方法1.使用find命令列出所有无效的符号链接
惊人的find命令也可用于查找损坏的软链接。
此命令的较新版本为该任务提供了专用选项。
要查找当前目录及其子目录中的所有悬挂链接,可以使用以下find命令:
find . -xtype l
输出将列出所有断开的链接:
find . -xtype l ./target_link2 ./newdir/new_dir/link_dir
方法2:使用symlinks命令查找损坏的符号链接
我们也可以使用名为symlinks的专用命令来处理悬空链接。
我们可能必须安装symlinks命令。
它在Debian中可用。
如果我们使用的是Ubuntu,则必须启用Universe存储库。
sudo apt install symlinks
安装后,我们可以按以下方式使用它:
symlinks [options] path_to_directory
因此,如果必须在当前目录中找到断开的链接,则可以这样使用它:
symlinks . dangling: /home/igi/tutorials/target_link2 -> newdir/test_dir/myzip
你有注意到吗?
它仅列出一个断开的链接,而find命令具有两个断开的链接。
这是因为如果我们要进行递归搜索,则必须指定以下选项:
symlinks -r directory
不是这个。
我们也可以选择使用symlinks命令的-d选项删除所有断开的链接。
symlinks -d . dangling: /home/igi/tutorials/target_link2 -> newdir/test_dir/myzip deleted: /home/igi/tutorials/target_link2 -> newdir/test_dir/myzip
实际上,符号链接可用于正确管理系统中的软链接。
它可以警告我们有关文件系统之间的链接,将混乱的链接更改为相对链接或者缩短冗长的链接。