Files
如何找到最大的打開文件?
在所有程序打開的文件中尋找最大的文件。
lsof
已經有打開的文件及其大小。它可能將正確的參數傳遞給lsof
並處理輸出。
您可以使用
-F
選項lsof
來獲得幾乎明確的輸出,該輸出是機器可解析的,只有中度的痛苦。輸出不明確,因為lsof
將文件名中的換行符重寫為\n
.輸出由
lsof
每行一個欄位組成。每個名稱的第一個字元表示欄位類型,該行的其餘部分是欄位值。這些欄位是:p
=PID(僅用於給定程序中的第一個描述符),f
=descriptor,t
=type(REG
對於正常文件,唯一具有大小的類型),s
=size(僅當可用時),n
=name。下面的 awk 程式碼收集具有大小的條目並列印大小和文件名。其餘管道對輸出進行排序並保留最大尺寸的條目。lsof -Fnst | awk ' { field = substr($0,1,1); sub(/^./,""); } field == "p" { pid = $0; } field == "t" { if ($0 == "REG") size = 0; else next; } field == "s" { size = $0; } field == "n" && size != 0 { print size, $0; } ' | sort -k1n -u | tail -n42 | sed 's/^[0-9]* //'