サイズ指定したファイルが欲しいことがあります。
たとえば200MBのファイルのファイルの転送時間を調べて欲しいや、コピー時間を調べたいなど。
ファイルサイズは数値で指定する。
windowsはfsutilを使う。
fsutil file createnew dummy1GB.img 1073741824 fsutil file createnew dummy200MB.img 209715200
ざっくりしたiB表記の場合こんな感じ
表記 | サイズ | 式 |
1GB | 1073741824 | expr 1024 \* 1024 \* 1024 |
200MB | 209715200 | expr 1024 \* 1024 \* 200 |
LinuxはMac OSXは dd を使うのが手早い
Linuxのdd とosx homebrewの gun dd はファイルサイズ指定の bs に1Mとか使えるので便利。
takuya@air:~/Desktop$ dd if=/dev/zero of=dummy200MB.img bs=1MiB count=200 200+0 records in 200+0 records out 209715200 bytes (210 MB) copied, 0.857194 s, 245 MB/s
dd は便利ですね。
bs=1MB とか bs=1MiBと指定できるから便利です。
Mac OSX 標準のBSD dd はbs指定が違う
bs = 1MB が使えない、古きよき、ddなので expr を使いましょう
takuya@air:~/Desktop$ dd if=/dev/zero of=dummy200MB.img bs=$(expr 1024 \* 1024) count=200 200+0 records in 200+0 records out 200000000 bytes (200 MB) copied, 1.13786 s, 176 MB/s
おまけ 1MiBと1MB
bs=1MiBで指定した場合
これは 1MiB=1024*1024 として計算される
takuya@air:~/Desktop$ ls -lh *.img -rw-r--r-- 1 takuya staff 200M 12 24 14:58 dummy200MB.img takuya@air:~/Desktop$ ls -l *.img -rw-r--r-- 1 takuya staff 209715200 12 24 14:58 dummy200MB.img
bs=1MBで指定した場合
ここれは 1MB=1000*1000 で計算される。
takuya@air:~/Desktop$ ls -l *.img -rw-r--r-- 1 takuya staff 200000000 12 24 15:00 dummy200MB.img takuya@air:~/Desktop$ ls -lh *.img -rw-r--r-- 1 takuya staff 191M 12 24 15:00 dummy200MB.img
ま、Mがミリオンを示すメガだから当たり前といえば当たり前。でも慌ててると忘れそうになる。