如何按大小对du -h输出进行排序

Modified on: Tue, 12 Nov 2019 13:20:01 +0800

我需要获得人类可读输出的列表。

但是,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的方法?

最佳答案

截至8月发布的GNU coreutils 7.5 2009年,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)

作者:,ptman

相关问答

添加新评论