Symlink

如何找到指向給定目錄中任何文件/目錄的所有符號連結

  • August 3, 2021

在這個問題或這個問題(例如),您將獲得有關如何查找指向給定目錄的符號連結(我們稱之為/dir1)的解決方案,而我對可能指向內部任何文件/文件夾的符號連結感興趣/dir1

我想刪除這樣的目錄,但我不確定這樣做是否安全,因為在另一個目錄(我們稱之為/dir2)上,我可能有指向/dir1.

此外,我可能使用絕對或相對路徑創建了這些符號連結。我唯一的幫助是我知道我要檢查的符號連結位於已安裝的文件系統上,位於/dir2.

您可以使用以下命令找到所有符號連結:

find / -type l 

您可能希望以 root 身份執行它以訪問光碟上的每個位置。

您可以使用擴展這些readlink -f以獲取連結的完整路徑,並且您應該能夠grep針對您正在考慮刪除的目標目錄輸出:

find / -type l -exec readlink -f {} + | grep -F /dir2

使用find / -type l -printf '%l\n'不起作用,因為您獲得../tmp/xyz了可能指向目標目錄的相對連結,但由於它們沒有完全展開而不匹配。

引用自:https://unix.stackexchange.com/questions/301717