2013年10月2日

巨大ファイルの作り方

転送速度を計測する際に巨大なファイルが必要になる場合があります。
以前は自分でプログラムを作成していたのですが、実はよく知られた作る方法がありました。
使うたびにぐぐっていたのでこの際メモ。

Linuxの場合

こんな感じで1GBのファイルを作れます。
dd if=/dev/zero of=test.bin.$1 bs=1M count=1024

よくループを回して1個のファイルというよりは、複数ファイルを作ります。
$ for i in `seq 0 3` ;do sudo dd if=/dev/zero of=test.bin.$i bs=1M count=1024 ; done;
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 40.3002 s, 26.6 MB/s
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 44.088 s, 24.4 MB/s
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 34.7547 s, 30.9 MB/s
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 30.1857 s, 35.6 MB/s
$ ll
total 4194320
-rw-r--r-- 1 root root 1073741824 Oct  1 16:37 test.bin.0
-rw-r--r-- 1 root root 1073741824 Oct  1 16:38 test.bin.1
-rw-r--r-- 1 root root 1073741824 Oct  1 16:39 test.bin.2
-rw-r--r-- 1 root root 1073741824 Oct  1 16:39 test.bin.3
$

参考:ITmedia エンタープライズ : Linux Tips「容量指定のダミーファイルを作成したい」

Windowsの場合

Windowsの場合もコマンドがありました。
C:\>fsutil file
---- サポートされる FILE コマンド ----

findbysid               セキュリティ識別子でファイルを検索
queryallocranges        ファイルに割り当てられた範囲の照会
setshortname            ファイルの短い名前の設定
setvaliddata            ファイルの有効なデータ長の設定
setzerodata             ファイルのゼロ データの設定
createnew               指定されたサイズの新しいファイルを作成
queryfileid             指定されたファイルをファイル ID で照会
queryfilenamebyid       ファイル ID のランダム リンク名を表示

C:\>fsutil file createnew
使用法 : fsutil file createnew <ファイル名> <長さ>
    例 : fsutil file createnew C:\testfile.txt 1000

C:\>fsutil file createnew test.bin 1073741824
ファイル c:\test.bin が作成されました

参考:巨大なサイズのファイルを簡単に作る方法 - @IT

このコマンドを実行する場合は管理者特権が必要なようです。コマンドプロンプトを開く際に「管理者として実行」を右クリックより選んでください。
C:\>fsutil
FSUTIL ユーティリティには管理者特権が必要です。

ちなみにこのファイル、圧縮するとサイズがかなり小さくなります。
$ zip test.zip *
  adding: test.bin.0 (deflated 100%)
  adding: test.bin.1 (deflated 100%)
  adding: test.bin.2 (deflated 100%)
  adding: test.bin.3 (deflated 100%)
$ ll
total 4198392
-rw-r--r-- 1 root     root     1073741824 Oct  1 16:37 test.bin.0
-rw-r--r-- 1 root     root     1073741824 Oct  1 16:38 test.bin.1
-rw-r--r-- 1 root     root     1073741824 Oct  1 16:39 test.bin.2
-rw-r--r-- 1 root     root     1073741824 Oct  1 16:39 test.bin.3
-rw-rw-r-- 1 user     user        4168818 Oct  1 16:48 test.zip
間違っても人に送り付けちゃダメですよ。

0 コメント:

コメントを投稿