Next: , Previous: Backup options, Up: Common options


2.3 ブロックサイズ

gnuプログラム(少なくとも,dfdu,そして ls)には,ファイルサイズを“ブロック”で表示するものもありま す.ファイルサイズをより読みやすくするため,ブロックサイズを調整するこ とが可能です.表示で使用するブロックサイズは,あらゆるファイルシステム のブロックサイズから独立しています.分数のブロック数は最も近い整数に切 り上げられます.

デフォルトのブロックサイズは,以下の環境変数を順番に調べることで選択さ れます.最初に設定されていたものでブロックサイズを決定します.

DF_BLOCK_SIZE
これは,dfコマンドに対するデフォルトのブロックサイズを指定し ます.同様に,DU_BLOCK_SIZEduに対するデフォルト,そ してLS_BLOCK_SIZElsに対するデフォルトを指定します.
BLOCK_SIZE
上記のコマンド指定の環境変数が設定されていない場合,これは,三つのコマ ンド全てに対するデフォルトのブロックサイズを指定します.
POSIXLY_CORRECT
command_BLOCK_SIZEBLOCK_SIZE変数も設定されておらず, この変数が設定されている場合,ブロックサイズのデフォルトは512になりま す.

上記の環境変数がどれも設定されていない場合,ほとんどの状況でブロックサ イズは現在のデフォルトの1024バイトですが,この数は将来変更されるかもし れません.lsのファイルサイズに対して,ブロックサイズのデフォ ルトは1バイトです.

ブロックサイズの指定は,ブロックごとのバイト数の指定で正の整数にしたり, 人間が可読な書式を選択してhuman-readablesiにしたりする ことが可能です.整数には,十進数の倍数となる SI prefixesの上 位互換の接尾子を続けたり, IEC 60027-2 prefixes for binary multiplesが続けてもかまいません.

人間が可読な書式を用いると,出力サイズにはメガバイトに対する‘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ロカールでは,千単位の区切りが無 いので,‘'’には効果がありません.

整数のブロックサイズは,そのサイズの倍数を指定する接尾子を続けることが 可能です.そのままの大きさを示す文字や‘iB’が続くものは,1024倍を 指定します.‘B’が続く大きさを示す文字は,代わりに1000倍を指定しま す.例えば,‘1M’と‘1MiB’は‘1048576’と等価で,‘1MB’ は‘1000000’と等価です.

前置する整数が無い普通のサフィックスでは,‘1’が前置されているかの ように動作しますが,大きさを示す文字が出力に後置されます.例えば, ‘--block-size="kB"’は3000を‘3kB’と表示します.

以下の大きさを示す文字が定義されています.1Yのような大きなサイ ズは,その計算の限界のためコンピュータに拒絶されるかもしれません.

kB
キロバイト:10^3 = 1000.
k
K
KiB
キビバイト:2^10 = 1024.‘K’は特殊です.SIの接頭辞は ‘k’ で,IEC 60027-2の接頭辞は‘Ki’ですが,伝統的なものと POSIXでは,‘k’を‘KiB’の意味で使用します.
MB
メガバイト:10^6 = 1,000,000.
M
MiB
メビバイト:2^20 = 1,048,576.
GB
ギガバイト:10^9 = 1,000,000,000.
G
GiB
ギビバイト:2^30 = 1,073,741,824.
TB
テラバイト:10^12 = 1,000,000,000,000.
T
TiB
テビバイト:2^40 = 1,099,511,627,776.
PB
ペタバイト:10^15 = 1,000,000,000,000,000.
P
PiB
ペビバイト:2^50 = 1,125,899,906,842,624.
EB
エクサバイト:10^18 = 1,000,000,000,000,000,000.
E
EiB
エクシビバイト:2^60 = 1,152,921,504,606,846,976.
ZB
ゼータバイト:10^21 = 1,000,000,000,000,000,000,000.
Z
ZiB
2^70 = 1,180,591,620,717,411,303,424.(‘Zi’はIEC 60027-2へ のGNUの拡張です.)
YB
ヨッタバイト:10^24 = 1,000,000,000,000,000,000,000,000.
Y
YiB
2^80 = 1,208,925,819,614,629,174,706,176.(‘Yi’はIEC 60027-2へのGNUの拡張です.)

ブロックサイズのデフォルトは,--block-size=sizeオプショ ンを明示することで優先することが可能です.-kオプションは, --block-size=1kと等価で,それはPOSIXLY_CORRECT環境変数 が指定されていない場合のデフォルトです.-h--human-readableオプションは, --block-size=human-readableと等価です.--siオプショ ンは,--block-size=siと等価です.