Help us understand the problem. What is going on with this article?

mkfileコマンド

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

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away