在先前的文章中,我們解釋了什麼是 Linux 中的符號連結。符號連結(Symbolic links 或 symlinks)或軟連結(soft links)用於在 Linux 中建立指向其他檔案的捷徑。符號連結在 Linux 中大量用於連結庫。
當連結指向的原始檔案被刪除時,該連結變為死連結。保留此類連結可能不是一個好主意。
現在問題來了,如何在 Linux 中找到斷開的符號連結?一些發行版以不同的顏色顯示斷開的鏈接,但這不是找到所有此類斷開鏈接的方法。
在本教程中,我將向您展示幾種在 Linux 中查找死連結(dangling link)的方法。
神奇的 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結合並刪除它找到的連結。
您也可以使用名為 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 中找到斷開的符號鏈接的詳細內容。更多資訊請關注PHP中文網其他相關文章!