我如何在Linux中看到GB而不是MB中的du?


24

这有效:

du -cshm .

但这失败了:

du -cshg .

如何以GB为单位查看它?

Answers:


41

GNU du可以--block-size选择:

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

sajb所述,省略block size参数将自动缩放输出(并显示单位)。使用任何块大小参数可显示数字,但省略单位。


在(GNU coreutils)8.25 -h不起作用,而block-size = 1G起作用了!
Florian Straub

@FlorianStraub:我不确定您对-h不工作的意思。它是受支持的选项,它使输出以“人类可读”的形式(即带有单位后缀和缩放比例)。但是,确实在--block-size使用时会忽略它。这是在我的回答中指出的。
暂停,直到另行通知。

我的坏处:我的意思是“ -g
没用

4

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

  • -h“人类可读”输出。使用单位后缀:字节,千字节,兆字节,千兆字节,TB和PB。
  • -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环境变量配置隐式行为:

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


1

使用du -B1073741824但要注意,它仅以整数为单位给出结果,并且对于-h


0

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

$ du -csh .
32G     .
32G     total
$ du --version | head -1
du (GNU coreutils) 7.4
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.