我需要获得一个人类可读的du输出列表.
但是,du没有“按大小排序”选项,并且要排序的管道不适用于人类可读标志.
例如,运行:
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
从排序手册:
-h,– human-numeric-sort比较人类可读数字(例如,2K 1G)