Linuxで任意サイズの評価用空ファイルを作成する方法
こんにちは。
ファイルのダウンロード速度を計測したりする際に、指定した容量のファイルが欲しくなるケースがあります。
今回はその方法を紹介したいと思います。
作成方法
ファイルの変換とコピーを行うdd
というコマンドで作成することができます。
例えば、50Mbyteのファイルを作成するには、以下のコマンドを実行します。
$ dd if=/dev/zero of=./test.img bs=1024 count=50000
※ /dev/zero はUnix系オペレーティングシステムにおけるスペシャルファイルの1つで、全てヌル文字の内容を読み出すことができる。
それぞれオプションの説明は下記の通りです。
if
: 標準入力の変わりにファイルから読み込む。of
: 標準出力の変わりにファイルに書き出す。bs
: バイトサイズを指定。デフォルトは512バイト。count
: bsで指定したサイズを繰り返す。
実践
実際にコマンドを叩いて確認してみましょう。
$ dd if=/dev/zero of=./test.img bs=1024 count=50000
50000+0 レコード入力
50000+0 レコード出力
51200000 バイト (51 MB) コピーされました、 0.0881463 秒、 581 MB/秒
出力されました。念のためサイズを確認します。
$ du -sk test.img
50000 test.img
50000KB(50MB) となっていて、正しく指定した容量で作成されていることが確認できました。
あとがき
以下のようなシェルスクリプトを書くと応用がききます。
これは1MBのファイルを1万個作るという内容になりますので、合計容量は10GBになります。
#!/bin/sh
for i in `seq 1 1 10000`;do
dd if=/dev/zero of=./1m-$i.img bs=1024 count=1000
done
今後もコマンドを利用した便利技を紹介できればと思います。
それでは、次の記事でお会いしましょう。