按大小降序列出所有目录

7
我有一个需求,需要按照大小的降序排列当前目录下的所有目录。
我尝试过以下命令:du -sh * | sort -rg ,它会按照大小列出所有文件夹,但只是按值的大小排序,而没有正确地排序。100 MB的目录应该排在200 KB的目录之前。
任何帮助都将不胜感激。

1
在您的 sort 命令中,尝试使用 -h 而不是 -g - Nick
在我的MAC上它不起作用。出现以下问题。du -sh * | sort -rh sort: invalid option -- h,请尝试使用`sort --help'获取更多信息。 - nagendra547
很奇怪,我在发表评论之前已经在Mac和Ubuntu上尝试过了。 - Nick
是的..不确定,但是sort --help中缺少-h选项。 - nagendra547
哪个版本的 Mac? - Nick
显示剩余3条评论
3个回答

10

-g 是用于浮点数的。要获得可读性强的输出,请使用可读性强的排序:

du -sh * | sort -rh

如果您有coreutils中的numfmt实用程序,您可以使用numfmt格式化进行数字排序:
du -B 1 -s * | sort -rn | numfmt --to=iec -d$'\t' --field=1

在我的 MAC 上无法运行。遇到以下问题。 du -sh * | sort -rh sort: 选项无效 -- h 请尝试使用 `sort --help' 以获取更多信息。 - nagendra547
1
唉,也许只尝试数字:du -s * | sort -rn - KamilCuk
是的,它部分地起作用。但它没有列出MB和KB。它没有显示大小的可读字符。它只是以纯字节的形式显示。 - nagendra547
numfmt将MB显示为KB。这是预期的吗? - lifeisshubh
numfmt显示mb为kb。这是预期的吗?根据man do,显示的值以--block-size、DU_BLOCK_SIZE、BLOCK_SIZE和BLOCKSIZE环境变量中第一个可用的SIZE单位为准。否则,默认单位为1024字节(如果设置了POSIXLY_CORRECT,则为512字节)。无论如何,很好地发现了-添加了-B 1。 - KamilCuk
显示剩余2条评论

5

我更喜欢直接比较字节。

du -b * | sort -nr

du -b 命令报告字节数。

sort -n 命令进行数字排序。显然,-r 反转排序结果。

我清理之前的 /tmp 目录 -

104857600       wbxtra_RESIDENT_07202018_075931.wbt
815372  wbxtra_RESIDENT_07192018_075744.wbt
215310  Slack Crashes
148028  wbxtra_RESIDENT_07182018_162525.wbt
144496  wbxtra_RESIDENT_07182018_163507.wbt
141688  wbxtra_RESIDENT_07182018_161957.wbt
56617   Notification Cache
20480   ~DFFA6E4895E749B423.TMP
16384   ~DF543949D7B4DF074A.TMP
13254   AdobeARM.log
3614    PhishMeOutlookReporterLoader.log
3448    msohtmlclip1/01
3448    msohtmlclip1
512     ~DF92FFF2C02995D884.TMP
28      ExchangePerflog_8484fa311d504d0fdcd6c672.dat
0       WPDNSE
0       VPMECTMP
0       VBE

顺便说一下,这是一个非常好的方法,可以快速找到满盘中最糟糕的文件。将其通过 head -50 管道传递并进行评估。 - Paul Hodges

0

不要让机器处理人类数据:

du -s * | sort -rg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接