「du -s。」と「du -hs。」では異なる結果が得られます(OS Xの場合)


12

ありとなしの違いは-h、人間が読めるユニットだけであるべきですよね?

どうやら...

$ du -s .
74216696    .
$ du -hs .
 35G    .

それとも間違っているのかもしれませんが、結果はdu -s .KB にありませんか?


3
を使用してみてくださいdu --block-size=1024 -s .。たぶんあなたBLOCK_SIZEに設定されている512
-Echoes_86

6
(OSX)マニュアルページから:「BLOCKSIZEが設定されておらず、-kオプションが指定されていない場合、ブロックカウントは512バイトブロックで表示されます」
-user4556274

ファイルシステムが実際に4096バイトブロックにある場合、これはあまり役に立ちません。
-DopeGhoti

だから、バイト単位のサイズを持つ方法はありませんか?私-hはちょうど1024で割っていくつかのユニットを追加すると思っていました
-Creak

2
echo "74216696*512" | bc出力、37998948352。そして、はい、-h1024で何度も除算することにより、人間が読める形式に変換します。私が得たのは35.3887で、これはduレポートに非常に近いものです。バイト単位のサイズについては、単に使用します--block-size=1。Linuxには-bオプションがありますが、私はOS Xに精通していませんdu
Sergiy Kolodyazhnyy

回答:


23

du出力形式指定子がないと、キロバイトではなく、512バイトのブロックでディスク使用量が与えられます-k代わりに、キロバイト単位で表示するオプションを使用できます。OS X(またはmacOS、またはMacOS、またはMacos、好きな方)では、環境変数を設定することでデフォルトのユニットをカスタマイズできますBLOCKSIZE(これは他のコマンドにも影響します)。


1
それを知らなかった...ブロックの数を持つことに興味は何ですか?ディスク上のサイズについて話しているときにブロックを使用している人を見たことがありません
...-Creak

2
ブロックはファイルシステムの原子単位です。どのファイルもディスク上の整数のブロックを消費します。ブロックは実際のデータで部分的に満たされる場合がありますが、ブロック全体がファイルに割り当てられます。ほとんどの人の日常的な使用は、使用率と空き率の意味でのブロック以外のブロックを気にしません。しかし、低レベルのユーティリティ(例えばfdiskdf、およびdu)ブロックでの作業特に指示がない限り、それは彼らが内部カウントする単位であるためです。
-DopeGhoti

1
@Creak実際、答えのその部分は間違っていました。単位はファイルシステムのブロックサイズではありません。などの古典的なUnixコマンドの目的ではdu、「ブロック」は512バイトを意味します。参照STATとLSとの違い-ファイルのブロックサイズブロックサイズとクラスタサイズの違い
ジル「SO-停止されて悪」

3
「すべてのファイルがディスク上のブロックの整数を消費します。」 まあ、一般的にはそうです。ファイルシステムがテールパッキングを使用していない限り。(実際のブロックサイズは、必ずしもで使用されるブロックサイズに整列していないがしかし、はい、ブロックは、ファイルシステムの基本的な単位であるdu。):)
ワイルドカード

3

問題はdu、512バイトのブロック数でサイズを返すことです。

サイズをKBにするには、-k代わりに1024バイトブロックを使用するオプションを使用できます。

$ du -ks .                            
43351596    .
$ du -khs .
 41G    .
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.