[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.3 ブロックサイズ

GNU プログラムには、ディスクの使用量を「ブロック数」で表示するものがいくつかある (少なくとも、df, du,ls がそうだ)。 ブロックのサイズや表示の書式は、使用量をわかりやすくするために、変更することができる。 表示に使用されるブロックサイズは、ファイルシステムのブロックサイズとは、 無関係である。ブロック数に端数が出る場合は、切り上げて整数にする。

デフォルトのブロックサイズの選択は、次の環境変数を順番に調べることで行われる。 設定されている最初のものがブロックサイズを決めることになる。

DF_BLOCK_SIZE

この環境変数は、df コマンドで使うデフォルトのブロックサイズを指定している。 同様に、DU_BLOCK_SIZEdu のデフォルトを、 LS_BLOCK_SIZEls のデフォルトを指定している。

BLOCK_SIZE

この環境変数は、上記のようなコマンド専用の環境変数が設定されていない場合に、 三つのコマンドのすべてが使用するデフォルトのブロックサイズを指定している。

BLOCKSIZE

この環境変数は、上記のようなコマンド専用の環境変数と BLOCK_SIZE のどちらも設定されていない場合に、 通常、ブロック数として表示されるすべての値が使用するデフォルトのブロックサイズを指定している。 ほかの環境変数とは違って、BLOCKSIZE は、たとえば ls -l の出力に含まれるファイルサイズのような、通常バイト数として表示される値には影響を及ぼさない。

POSIXLY_CORRECT

command_BLOCK_SIZE, BLOCK_SIZE, BLOCKSIZE のいづれも設定されていず、この変数が設定されている場合は、 ブロックサイズのデフォルトは、512 バイトになる。

上記の環境変数のいづれも設定されていない場合、 ブロックサイズのデフォルトは、現在のところたいていの場合、 1024 バイトである。 ただし、この数値は、将来変更されるかもしれない。なお、ls の表示するファイルサイズについては、ブロックサイズのデフォルトは 1 バイトである。

ブロックサイズの指定には、1 ブロックあたりのバイト数を示す正の整数を使えばよい。 あるいは、human-readablesi を指定して、 「人間に読みやすい」書式を選ぶこともできる。 整数の後ろには接尾辞 (suffix) を続けてもよい。そうした接尾辞は、単位の前に付けて ‘10’ の累乗倍を表す SI (国際単位系) の接頭辞 (prefix) や、 ‘2’ の累乗倍を表す ISO/IEC 80000-13 (以前は IEC 60027-2 だった) の接頭辞の上位互換である。単位の前に付ける接頭辞については、 次の URL を参照していただきたい。
SI prefixes:. ISO/IEC 80000-13 prefixes:.

「人間に読みやすい」書式の場合、出力するサイズの後ろに、メガバイトなら ‘M’ といった、大きさを表す文字が続く。BLOCK_SIZE=human-readable の方は、1024 の累乗を使うので、‘M’ は 1,048,576 バイトを意味している。 BLOCK_SIZE=si も似ているが、こちらは 1000 の累乗を使用し、さらに ‘B’ という文字を追加する。そこで、‘MB’ は 1,000,000 バイトを意味することになる。

ブロックサイズの指定の先頭に ‘'’ を付けると、 出力するサイズを数桁ごとに区切って表示することができる。 区切りに使う記号や区切りの位置は、LC_NUMERIC のロケールによって決まる。 たとえば、アメリカ英語のロケールでは、‘--block-size="'1kB"’ と指定すれば、1234000 バイトという容量が ‘1,234’ と表示されることになるだろう。デフォルトの C ロケールの場合は、 区切り記号が存在しないので、先頭の ‘'’ に効果はない。

ブロックサイズを指定する整数の後ろには、接尾辞を付けて、 その整数の何倍かを示すことができる。大きさを表す (訳注: M, G などの) 文字の後ろに何も続けないときや、‘iB’ を続けるときは、 1024 の累乗倍ということである。それに対して、大きさを表す文字に ‘B’ を続ける場合は、1000 の累乗倍ということになる。 たとえば、‘1M’ や ‘1MiB’ は ‘1048576’ と同じであり、 ‘1MB’ は ‘1000000’ と同じである。

整数を前に付けずに、接尾辞だけを指定したときの動作は、 ‘1’ が前に付いているときとほぼ同じだが、大きさの表示が出力の後ろに付く点が違う。 たとえば、‘--block-size="kB"’ は、3000 を ‘3kB’ という形で表示する。

以下の接尾辞が定義されている。1Y のような大きな量は、 算術計算の限界のためにお使いのコンピュータでは使用できないかもしれない。

kB

キロバイト (kilobyte): 10^3 = 1000 バイト。

k
K
KiB

キビバイト (kibibyte): 2^10 = 1024 バイト。 ‘K’ も使えるのは、おまけである。なお本来、SI の接頭辞 (訳注: すなわち 10^3 倍を表す接頭辞) が ‘k’ であり、 ISO/IEC 80000-13 の接頭辞 (訳注: すなわち 2^10 倍を表す接頭辞) が ‘Ki’ だが、これまでの習慣や POSIX の用法では、 ‘KiB’ の意味で ‘k’ を使っている。

MB

メガバイト (megabyte): 10^6 = 1,000,000 バイト。

M
MiB

メビバイト (mebibyte): 2^20 = 1,048,576 バイト。

GB

ギガバイト (gigabyte): 10^9 = 1,000,000,000 バイト。

G
GiB

ギビバイト (gibibyte): 2^30 = 1,073,741,824 バイト。

TB

テラバイト (terabyte): 10^12 = 1,000,000,000,000 バイト。

T
TiB

テビバイト (tebibyte): 2^40 = 1,099,511,627,776 バイト。

PB

ペタバイト (petabyte): 10^15 = 1,000,000,000,000,000 バイト。

P
PiB

ペビバイト (pebibyte): 2^50 = 1,125,899,906,842,624 バイト。

EB

エクサバイト (exabyte): 10^18 = 1,000,000,000,000,000,000 バイト。

E
EiB

エクスビバイト (exbibyte): 2^60 = 1,152,921,504,606,846,976 バイト。

ZB

ゼタバイト (zettabyte): 10^21 = 1,000,000,000,000,000,000,000 バイト。

Z
ZiB

ゼビバイト (zebibyte): 2^70 = 1,180,591,620,717,411,303,424 バイト。

YB

ヨタバイト (yottabyte): 10^24 = 1,000,000,000,000,000,000,000,000 バイト。

Y
YiB

ヨビバイト (yobibyte): 2^80 = 1,208,925,819,614,629,174,706,176 バイト。

デフォルトのブロックサイズは、コマンドに対して ‘--block-size=size’ オプションを明示的に指定することで、上書きすることができる。‘-k’ オプションは、‘--block-size=1K’ と同じであり、環境変数 POSIXLY_CORRECT が設定されていないときのデフォルトである。‘-h’ オプションや ‘--human-readable’ オプションは、‘--block-size=human-readable’ と同じである。‘--si’ オプションは、‘--block-size=si’ と同じだ。 なお、ls コマンドの場合、 ‘-k’ オプションはファイルの見かけのサイズの表示に影響しないのに対し、 ‘--block-size’ オプションは影響することに注意していただきたい。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on June 7, 2022 using texi2html 1.82.