#はじめに
『デバイスの空き容量をゴミファイルで埋める』という記事を読んで、
mkfile -n 11g gomi.dat
とmkfileコマンド (バイナリファイルの作成するコマンド) が出てきた。そして、11g
って何表してたんだっけ?っと忘れてしまっていので調べた。
#結論から言うとファイルのサイズだった。
結論から言うと、11g
とは、11GBのファイルということだった。
任意のサイズのファイルをmkfileで作るときに使えるらしく、以下の単位と共にサイズを指定することで作れるらしい。
記述 | 実際の単位 |
---|---|
b | Byte |
k | KB |
m | MB |
g | GB |
また、オラクルのサイトに次のように書いてありました。
mkfile コマンド
mkfile コマンドは、NFS のマウント済みスワップ空間またはローカルスワップ空間に使用できるファイルを作成します。スティッキビットが設定され、ファイルは 0 が埋め込まれます。スワップファイルのサイズは、バイト数 (デフォルト) として指定するか、接尾辞 k、b、m を使用して、それぞれ K バイト数、ブロック数、M バイト数として指定できます。
(引用元:mkfile コマンド (Solaris のシステム管理 (基本編)) )
つまり、b
というのはバイト数ではなく、ブロック数?
ブロック数とはWikipediaによると
コンピューティング、特に記憶装置とデータ転送において、ブロック(英: Block)とは、ある一定の長さ(ブロックサイズ)のバイトまたはビットの並びである。そのようなデータは「ブロック化」されていると言われる。ブロック化は、そのデータを受け取るコンピュータプログラムにとって装置の物理的特性を抽象化し、データストリームを扱いやすくするために行われる。
また狭義には、
- オペレーティングシステムあるいはファイルシステムがHDDなどの外部デバイスとのデータ読み書きを行うインターフェースにおけるデータの最小単位
- データベース管理システム(DBMS)が記憶装置とのデータのやり取りを行うインターフェースにおけるデータの最小単位
- フラッシュメモリにおいて、消去操作を行うデータの最小単位
を示す。
(引用元:ブロック (データ) - Wikipedia)
ということでb
とm
で実際にファイルを作りました。
コマンド | 結果 |
---|---|
mkfile -v 11b test.text | test.text 5632 bytes |
mkfile -v 11m test.text | test.text 11534336 bytes |
ということで、11m
で作った方は11MBに近いですが、11b
で作った方は5632bytesということで
やはりこのb
という接尾辞はByteを表しているのではなくブロック数を指定するものみたいですね。
ちなみに、mkfile
のオプションコマンドは次の通りです。
mkfile
のオプションコマンド
オプションコマンド | 内容 |
---|---|
-n | 空のファイルを作成。サイズは表示されるが、データが書き込まれるまでディスクブロックは割り当てられない。 |
-v | 作成したファイル名とサイズを表示。 |