Linux尋找並刪除與目錄相關的所有符號鏈接

Linux尋找並刪除與目錄相關的所有符號鏈接

所以,我遇到了一種情況,我創建了許多符號鏈接,試圖讓它們工作,嘗試各種組合..現在我遇到了這個錯誤:

ls: cannot access /etc/sv/me: Too many levels of symbolic links

/service/ 或 /etc/sv/ 中沒有符號鏈接
我能找到解決此錯誤的唯一方法是刪除與 /service/ 或 /etc/sv/ 相關的所有符號鏈接,但我什至沒有看到符號鏈接?

答案1

您可以透過一些find技巧來識別循環符號鏈接,試試這個:

find /path/to/search -type l -a ! \( -xtype b -o -xtype c -o -xtype d -o -xtype p -o -xtype f -o -xtype s -o -xtype l \) 2>/dev/null

這是透過過濾符號連結來實現的,然後排除符號連結目標類型是任何可能的 inode 類型的任何內容。唯一剩下的就是那些find無法確定目標類型的情況,這只發生在循環符號連結上(損壞的匹配-xtype l

答案2

符號連結不會表現出「遠距離作用」-作為符號連結的目標永遠不會直接影響目標。

您看到的錯誤表明/etc, or /etc/sv, or/etc/sv/me是符號連結。找出它是哪一個並修復它。

答案3

執行時嘗試使用小寫-l(破折號 ell)而不是大寫。-Lls

相關內容