在 Linux 中,如何以 GB 而不是 MB 为单位查看 du?

在 Linux 中,如何以 GB 而不是 MB 为单位查看 du?

这有效:

du -cshm .

但这失败了:

du -cshg .

我怎样才能以 GB 为单位查看它?

答案1

GNUdu有以下--block-size选项:

du -csh --block-size=1G .

作为萨杰布值得注意的是,省略块大小参数将自动缩放输出(并显示单位)。使用任何块大小参数都会显示数字但省略单位。

答案2

为了方便起见,以下是 macOS 的参考:

  • -h“人类可读”的输出。使用单位后缀:字节、千字节、兆字节、千兆字节、太字节和拍字节。
  • -k以 1024 字节(1 KB)的块为单位显示块数。
  • -m以 1,048,576 字节(1 MB)的块为单位显示块数。
  • -g以 1,073,741,824 字节(1 GB)的块为单位显示块数。

对于给定的文件,各种选项的工作方式如下1,234,567 KB

$ mkfile -n 1234567k file.txt

$ du file.txt
2469136 file.txt

$ du -k file.txt
1234568 file.txt

$ du -m file.txt
1206    file.txt

$ du -g file.txt
2   file.txt

$ du -h file.txt
1.2G    file.txt

还值得注意的是,您可以通过BLOCKSIZE环境变量配置隐式行为:

BLOCKSIZEBLOCKSIZE如果设置了环境变量,并且-k未指定选项,则块计数将以该大小的块为单位显示。如果BLOCKSIZE没有设置,并且-k未指定选项,则块计数将以512字节块为单位显示。

答案3

使用du -B1073741824时要小心,它只给出整数单位的结果,并且没有意义-h

答案4

除了前面的答案之外,不同的 coreutils 版本(或语言环境?)之间似乎也有所不同,因为在我的主机上我得到了:

$ du -csh .
32G     .
32G     total
$ du --version | head -1
du (GNU coreutils) 7.4

相关内容