Unix / Linux / Windows上で任意のサイズのファイルを作成するコマンドあれこれ | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

ある大きさの容量を持つファイルを作りたいという要望は色んなケースで出てきたりします。

例えば、ファイル操作やアップロードのテストをしたいとか、SSL証明書のCSRを作成する際に必要な鍵を作る為のインプットとして適度な大きさのファイルがほしいとか。


で、調べてみたらそれぞれのOSで、指定した大きさのサイズを持つファイル作成するコマンドがありました。


- Unix / Linuxの場合

ddコマンドを使って、任意の大きさのファイルを作成する。


ddコマンドは、ファイルを変換してコピーするコマンドになります。

ファイルを作成する為の元となる情報、作ったファイルの出力先、ブロックの大きさなどを指定することで任意の大きさのファイルを指定することが出来ます。

しかも、元となる情報次第で、様々なファイルを作り出すことが出来ます。


例えば・・・


$ dd if=/dev/urandom of=file1 bs=1024 count=1000

と指定すると、urandomからランダムなデータを受け取り、それをfile1に書き出します。

書き出される容量は、1024000バイト(1024×1000)です。

引数のbsは入出力ブロック数で、countはコピー(出力)するブロック数を指定します。



- Windowsの場合

fsutilコマンドで、任意の大きさのファイルを作成する。(WindowsXPのみ)


ddコマンドと同じく、WindowsXP上では指定した大きさのファイルを作成するコマンドが存在します。

ただし、fsutilコマンドはファイル名とファイルサイズを指定するだけで、ファイルの中身は全て「0x00」(16進)のデータとなります。


例えば・・・


C:\>fsutil file createnew file1 1048576

と指定すると、1048576バイト(1MB)のfile1というファイルが作成されます。



用途は色々ありますので、覚えておけば便利かもしれません。