Linux
從根目錄開始列印完整的符號連結資訊
我們有興趣列印從根目錄開始的所有符號連結資訊。我們希望以以下格式列印資訊:
symbolic name -> actual name
$$ Notice the same line $$我們嘗試了以下方法,它為我們提供了符號名稱和實際名稱,但在不同的行:
find . -type l -print -exec readlink -f {} \;
我不認為你離得很遠。使用
-printf
代替find
有它)你得到這個find / -type l -printf "%p -> " -exec readlink -f {} \;
範例輸出
/bin/apropos -> /bin/whatis /bin/awk -> /bin/gawk /bin/bzcmp -> /bin/bzdiff
以供參考,
ls -gl /bin/apropos lrwxrwxrwx 1 roaima 10 Mar 28 20:15 /bin/apropos -> whatis
您將獲得斷開連結
-printf
的過度行(沒有換行符)
與
zsh
:for link (**/*(ND@^-@)) print -r -- "$link -> $link:P"
where
@^-@
將 glob 擴展限制為未損壞的符號連結文件(目標可訪問的符號連結,確定其規範路徑的必要條件,相當於 GNUfind
的-type l ! -xtype l
)。$link:P
給對外連結接的真實路徑(符號連結解析後的所有組件的規範絕對路徑,類似於realpath()
標準函式所做的,或 GNUreadlink -f
)。