在 du 中显示人类可读的文件大小

在 du 中显示人类可读的文件大小

我使用此命令来确定哪个目录正在占用我的磁盘。

du -sk * | sort -n

如何获得人类可读的du文件大小结果形式?我已经检查过了man,它所拥有的-k只是将字节结果转换为千字节结果的标志。我需要以 GB 为单位的结果

答案1

这可能有效:

du -hs * | sort -h

如果您的副本du不支持该-h标志,那么您可以转换数字使用awk

du -ks * | awk '
function human(x) {
    s="kMGTEPYZ";
    while (x>=1000 && length(s)>1)
        {x/=1024; s=substr(s,2)}
    return int(x+0.5) substr(s,1,1)
}
{gsub(/^[0-9]+/, human($1)); print}'

答案2

在 Linux 机器上 [基于 Debian],我在打开手册页时得到以下信息du

 -h, --human-readable
              print sizes in human readable format (e.g., 1K 234M 2G)

因此:du -h应该给你你需要的东西。另外,也来自man du

   --si   like -h, but use powers of 1000 not 1024

   -k     like --block-size=1K

我真的很想知道你在哪里找到你的信息。

相关内容