如何获取人类可读格式-h option
的磁盘使用情况信息,但也可以正确排序。
现在,如果我使用-h option
,它将无法正确排序,即G M K不按升序排列。
答案 0 :(得分:5)
du -hs * | sort -h
在Mac OS X上,使用自制软件安装coreutils很容易:
sudo brew install coreutils
来自https://serverfault.com/questions/62411/how-can-i-sort-du-h-output-by-size
答案 1 :(得分: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