在之前的文章中,我們解釋了什么是 Linux 中的符號鏈接。符號鏈接(Symbolic links 或 symlinks)或軟鏈接(soft links)用于在 Linux 中創(chuàng)建指向其他文件的快捷方式。符號鏈接在 Linux 中大量用于鏈接庫。 當(dāng)鏈接指向的原始文件被刪除時,該鏈接變?yōu)樗梨溄印1A舸祟愭溄涌赡懿皇且粋€好主意。 現(xiàn)在問題來了,如何在 Linux 中找到斷開的符號鏈接?一些發(fā)行版以不同的顏色顯示斷開的鏈接,但這不是找到所有此類斷開鏈接的方法。 在本教程中,我將向您展示幾種在 Linux 中查找死鏈接(dangling link)的方法。
方法一、使用 find 命令列出所有損壞的符號鏈接
神奇的 find 命令也可用于查找損壞的軟鏈接。此命令的較新版本為此任務(wù)提供了專用選項。 要查找當(dāng)前目錄及其子目錄中的所有死鏈接,可以使用 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結(jié)合使用并刪除它找到的鏈接。
方法 2:使用 symlinks 命令查找斷開的符號鏈接
您還可以使用名為 symlinks 的專用命令來處理死鏈接。 您可能必須安裝符號鏈接命令。它在 Debian 中可用。如果您使用的是 Ubuntu,則必須啟用 Universe repository。
sudo apt install symlinks安裝后,您可以按以下方式使用它:
symlinks [options] path_to_directory所以,如果你必須在當(dāng)前目錄中找到斷開的鏈接,你可以像這樣使用它:
┌──(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
事實上,符號鏈接可用于正確管理系統(tǒng)中的軟鏈接。它可以警告您跨文件系統(tǒng)的鏈接,將雜亂的鏈接更改為相對的鏈接或縮短冗長的鏈接。 在 Linux 中,可以有多種方法來執(zhí)行一項任務(wù)。查找斷開的符號鏈接是一樣的。我向您展示了兩種方法,但肯定還有其他方法。如果您有其他最喜歡的管理死鏈接的命令,請在評論部分與我們分享。 關(guān)于相關(guān)主題,您還可以閱讀 Linux 中硬鏈接的概念。
-
Linux
+關(guān)注
關(guān)注
87文章
11232瀏覽量
208961 -
符號
+關(guān)注
關(guān)注
0文章
55瀏覽量
4317
原文標(biāo)題:如何在 Linux 中查找斷開的符號鏈接
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論