mkfileコマンド

More than 3 years have passed since last update.


はじめに

デバイスの空き容量をゴミファイルで埋める』という記事を読んで、

mkfile -n 11g gomi.dat

とmkfileコマンド (バイナリファイルの作成するコマンド) が出てきた。そして、11gって何表してたんだっけ?っと忘れてしまっていので調べた。


結論から言うとファイルのサイズだった。

結論から言うと、11gとは、11GBのファイルということだった。

任意のサイズのファイルをmkfileで作るときに使えるらしく、以下の単位と共にサイズを指定することで作れるらしい。

記述
実際の単位

b
Byte

k
KB

m
MB

g
GB

参考:任意のサイズのファイルを作成する(mkfile)

また、オラクルのサイトに次のように書いてありました。


mkfile コマンド

mkfile コマンドは、NFS のマウント済みスワップ空間またはローカルスワップ空間に使用できるファイルを作成します。スティッキビットが設定され、ファイルは 0 が埋め込まれます。スワップファイルのサイズは、バイト数 (デフォルト) として指定するか、接尾辞 k、b、m を使用して、それぞれ K バイト数、ブロック数、M バイト数として指定できます。

(引用元:mkfile コマンド (Solaris のシステム管理 (基本編)) )


つまり、bというのはバイト数ではなく、ブロック数?

ブロック数とはWikipediaによると


コンピューティング、特に記憶装置とデータ転送において、ブロック(英: Block)とは、ある一定の長さ(ブロックサイズ)のバイトまたはビットの並びである。そのようなデータは「ブロック化」されていると言われる。ブロック化は、そのデータを受け取るコンピュータプログラムにとって装置の物理的特性を抽象化し、データストリームを扱いやすくするために行われる。

また狭義には、

* オペレーティングシステムあるいはファイルシステムがHDDなどの外部デバイスとのデータ読み書きを行うインターフェースにおけるデータの最小単位

* データベース管理システム(DBMS)が記憶装置とのデータのやり取りを行うインターフェースにおけるデータの最小単位

* フラッシュメモリにおいて、消去操作を行うデータの最小単位

を示す。

(引用元:ブロック (データ) - Wikipedia)


ということでbmで実際にファイルを作りました。

コマンド
結果

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
作成したファイル名とサイズを表示。


参考