要約サイズをバイト単位で取得するためのUnixの「du -sb」と同じ

要約サイズをバイト単位で取得するためのUnixの「du -sb」と同じ

Linuxでは、GNUを使用してディレクトリduサイズ(バイト単位)を繰り返し計算します。以下を実行できます。

du -sb /etc

duパラメータが利用できないという事実に基づいて、-bBSDに対応する構文は何ですか?

答え1

最初の考えは…

find $HOME | xargs stat -f%z | awk '{ s+=$1 } END { print s }'

...crawl $HOME、ファイルサイズ(バイト単位)を取得し、statsumを使用しますawk

NetBSD7 でテストされました。

答え2

デフォルトでは、BSDではduブロック数が512バイトのブロックとして表示されるため、値を掛けることができます。 Bashの例は次のとおりです。

echo $(($(du -s /etc | cut -f1) * 512))

ブロックサイズ変更を使用できますが、BLOCKSIZE最小ブロックサイズは512です。変更後の状況は次のとおりです。

echo $(($(BLOCKSIZE=1024 du -s /etc | cut -f1) * 1024))

関連情報