Linux
如何按大小對 du -h 輸出進行排序
我需要獲取人類可讀的 du 輸出列表。
但是,
du
沒有“按大小排序”選項,並且管道sort
不適用於人類可讀的標誌。例如,執行:
du | sort -n -r
按大小(降序)輸出排序的磁碟使用情況:
du |sort -n -r 65108 . 61508 ./dir3 2056 ./dir4 1032 ./dir1 508 ./dir2
但是,使用人類可讀標誌執行它時,無法正確排序:
du -h | sort -n -r 508K ./dir2 64M . 61M ./dir3 2.1M ./dir4 1.1M ./dir1
有人知道
du -h
按大小排序的方法嗎?
從2009 年 8 月發布的GNU coreutils 7.5
sort
開始,允許使用一個-h
參數,該參數允許以下類型的數字後綴du -h
:du -hs * | sort -h
如果您使用的是不支持的排序
-h
,您可以安裝 GNU Coreutils。例如在較舊的 Mac OS X 上:brew install coreutils du -hs * | gsort -h
從
sort
手冊:
-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)
du | sort -nr | cut -f2- | xargs du -hs