LinuxでMBの代わりにGBでduを表示するにはどうすればよいですか?


24

これは動作します:

du -cshm .

しかし、これは失敗します:

du -cshg .

GB単位で表示するにはどうすればよいですか?

回答:


41

GNU duには--block-sizeオプションがあります:

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

sajbに述べたように、ブロックサイズ引数を省略すると、自動的に出力をスケーリング(および単位を表示)されます。ブロックサイズの引数を使用すると、数値は表示されますが、単位は省略されます。


(GNU coreutils)8.25では-hは機能しませんでしたが、block-size = 1Gは機能しました!
フロリアンストラウブ

@FlorianStraub:仕事をしないことについてあなたが何を言っているのか分かり-hません。これはサポートされているオプションであり、出力が「人間が読める」形式になります(つまり、単位のサフィックスが付き、スケーリングされます)。ただし、--block-size使用された場合は無視されるのは事実です。これは私の答えに記載されています。
追って通知があるまで一時停止します。

私の悪い:私は「-gが機能しなかった」ことを意味しました
Florian Straub

4

便宜上、macOSのリファレンスを次に示します。

  • -h「人間が読める」出力。単位のサフィックスを使用してください:バイト、キロバイト、メガバイト、ギガバイト、テラバイト、ペタバイト。
  • -k ブロック数を1024バイト(1Kバイト)ブロックで表示します。
  • -m ブロックカウントを1,048,576バイト(1Mバイト)ブロックで表示します。
  • -g ブロック数を1,073,741,824バイト(1ギガバイト)ブロックで表示します。

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.