2011-11-26 95 views
2

如何獲取人類可讀格式-h option的磁盤使用情況信息,但也可以正確排序。磁盤使用格式

現在,如果我使用-h option它不會正確排序,即G M K不是按升序排列。

+0

[怎麼辦你按大小排序?](http://unix.stackexchange.com/q/4681) – Gilles

回答

1

我不太明白這個問題。爲什麼不不排序?

編輯應詢問相同的單位,例如,總是du -k

[jaypal~/Temp]$ du -k ./* | sort -nr 
120K ./GTP 
108K ./scripts 
36K ./backup 
24K ./GTP/ParserDump 
20K ./perl 
4.0K ./outfile 
4.0K ./file1 
4.0K ./file 
4.0K ./colors 
4.0K ./GTP/ParserDump/ParserDump 

千字節。如果你需要輸出使用「人類友好」的單位,進行轉換排序(可能使用awk)之後。

AWK腳本:這是我們如何能夠對文件進行排序..不知道,如果我們可以用-h option但是這有點像模擬-h option。結果更準確;)

[jaypal~/Desktop/Reference]$ du -h ./* | sort -nr 
584K ./scan 1.pdf 
544K ./Personal/Resume 
44K ./Membership.xlsx 
16M ./Personal 
16K ./Membership Transmittal Template.xlsx 
14M ./Personal/Docs 
2.4M ./Work Docs 
1.6M ./Work Docs/Work 
1.5M ./Personal/Raa 

[jaypal~/Desktop/Reference]$ du -k ./* | sort -nr | awk '{split("KB,MB,GB",size,",");}{x = 1;while ($1 >= 1024) {$1 = $1/1024;x = x + 1} $1 = sprintf("%-4.2f%s", $1, size[x]); print $0;}' 
15.92MB ./Personal 
13.82MB ./Personal/Docs 
2.35MB ./Work Docs 
1.59MB ./Work Docs/Work 
1.46MB ./Personal/Raa 
584.00KB ./scan 1.pdf 
544.00KB ./Personal/Resume 
44.00KB ./Membership.xlsx 
16.00KB ./Membership Transmittal Template.xlsx 
+1

也許是因爲K&M之間的單位不同?然後使用'du -k'應該總是給千字節,所以回答這個問題 –

+0

是的,我同意。你應該回答這個問題。這是比我更好的答案。 :) –

+0

除非,我用'-h選項'來排序;) –