Linux
查找最長的文件名
我必須在一個充滿符號連結的文件夾中找到包含最長文件夾名稱的符號連結。到目前為止,我有這個:
find <folder> -type l -printf "%l\n"
我想知道是否有任何方法可以在搜尋時保存文件夾名稱,例如以下虛擬碼:
if [length > max] { max = length var = link }
謝謝 :)
find /path/to/base -type l | awk -F/ 'BEGIN {maxlength = 0; longest = "" } length( $NF ) > maxlength { maxlength = length( $NF ); longest = $NF } END { print "longest was", longest, "at", maxlength, "characters." }'
為了使
awk
更具可讀性:BEGIN { maxlength = 0 longest = "" } length( $NF ) > maxlength { maxlength = length( $NF ) longest = $NF } END { print "longest was", longest, "at", maxlength, "characters." }
awk
擅長處理分隔數據。由於路徑由/
s 分隔,我們將其用作欄位分隔符(使用-F
開關),跟踪我們在longest
變數中看到的最長名稱,以及它在變數中的長度maxlength
。如果沒有找到連結,我將留給讀者作為練習,進行一些護理和餵養以使輸出保持正常。