【Windows/Mac】特定サイズのダミーファイルを作る方法(fsutil/mkfile)

開発やテストをしていると、こんな場面に出くわすことはありませんか?

  • アップロード上限が5MBまでなんだけど、ギリギリのサイズでテストしたい
  • ディスクやネットワークの速度を測るために、100GBのテストファイルを用意したい

そんなときに便利なのが、コマンドで特定サイズのダミーファイルを作成する方法です。

この記事では、WindowsとMacそれぞれで簡単にダミーファイルを作成する方法を紹介します。

ファイルサイズの単位と計算の基本

まずは、ファイルサイズの単位と計算方法について説明します。

テスト用のファイルを作成するときは、何バイト(Byte)のファイルを作るかを正確に指定する必要があります。そのためには、まずファイルサイズの単位換算方法を理解しておくことが大切です。

ファイルサイズは、1,024(2の10乗)ごとに単位が変わっていきます。以下の表で、代表的な単位を整理しておきましょう。

ファイルサイズの単位読み方計算式バイト数
1 KiBキビバイト1,0241,024 Byte
1 MiBメビバイト1,024 × 1,0241,048,576 Byte
1 GiBギビバイト1,024³1,073,741,824 Byte

たとえば「5MiBのファイルを作りたい」ときは、1,048,576 × 5 = 5,242,880 Byte になります。

Windowsの表記に注意

Windowsでは、実際には2進数(1024)ベースで計算しているにもかかわらず、単位の表記に「KB」「MB」「GB」を使う仕様になっています。つまり、Windowsで表示される“5MB”は、実質的には“5MiB”とほぼ同義です。

あわせて読みたい

KB・MB・GB・TB・KiB・MiB・GiB・TiBの「違い」と「変換方法」については下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

Windowsで特定サイズのダミーファイルを作る方法

Windowsには、標準でfsutilコマンドという強力なファイル操作コマンドが用意されています。このコマンドを使えば、特定サイズのダミーファイルを作成することができます。「アップロード上限のテスト」や「ディスク書き込み速度の検証」を行う際に非常に便利です。

基本構文

fsutil file createnew <ファイル名> <サイズ>
  • <ファイル名>:作りたいファイルの名前(例:dummy_5MB.txt
  • <サイズ>:ファイルの大きさをByte(バイト)単位で指定

fsutil file createnewWindowsの組み込みコマンド(fsutil.exe)なので、「コマンドプロンプト(cmd.exe)」でも「PowerShell」でも同じように実行できます。

例えば、5MiB(Windowsの表記では5MB)のファイルを作成する場合には以下のコマンドを実行します(5 × 1024 × 1024 = 5,242,880 Byte)。

fsutil file createnew dummy_5MB.txt 5242880

このコマンドを実行すると、dummy_5MB.txtというファイルがカレントディレクトリに作成されます。実際にファイルサイズを確認すると、5MiB(Windowsの表記では5MB)であることがわかります。

Windowsで特定サイズのダミーファイルを作る方法

また、100GiB(Windowsの表記では100GB)のファイルを作成する場合には以下のコマンドを実行します(100 × 1024 × 1024 × 1024 = 107,374,182,400 Byte)。

fsutil file createnew dummy_100GB.txt 107374182400

なお、16進数表記(0x)で指定することもできます(107,374,182,400の16進数表記が0x1900000000)。

fsutil file createnew dummy_100GB.txt 0x1900000000

補足

fsutilで作成されるファイルは、すべてのデータが「0x00(ゼロ)」で埋められたファイルであり、物理的な実データはまだ書き込まれておらず、未書き込み領域になっています。

fsutilで作成されるファイル

そのため、このファイルを読み出して速度を測定すると、実際よりも速く見えるという特性があります。理由は、未書き込み領域を読み出すと、OSがゼロを返すため、ディスクを実際に読まずに応答できるからです。

Macでダミーファイルを作る方法

macOSでは、mkfileコマンドで簡単に特定サイズのダミーファイルを作成できます。

基本構文

mkfile <サイズ> <ファイル名>
  • <ファイル名>:作りたいファイルの名前(例:dummy_5MB.txt
  • <サイズ>:ファイルの大きさをByte(バイト)単位で指定

例えば、5MiBのファイルを作成する場合には以下のコマンドを実行します(5 × 1024 × 1024 = 5,242,880 Byte)。

mkfile $((5 * 1024 * 1024)) dummy_5MB.txt

このコマンドを実行すると、dummy_5MB.txtというファイルがカレントディレクトリに作成されます。

また、100GiBのファイルを作成する場合には以下のコマンドを実行します(100 × 1024 × 1024 × 1024 = 107,374,182,400 Byte)。

mkfile $((100 * 1024 * 1024 * 1024)) dummy_100GB.txt

テストでよく使うファイルサイズ早見表

テストファイルを作る際に、毎回バイト数を計算するのは面倒ですよね。以下に、テストでよく使うファイルサイズ早見表を示します。

単位バイト数計算式
1 KiB1,024 Byte1,024
5 KiB5,120 Byte1,024 × 5
10 KiB10,240 Byte1,024 × 10
100 KiB102,400 Byte1,024 × 100
1 MiB1,048,576 Byte1,024²
5 MiB5,242,880 Byte1,048,576 × 5
10 MiB10,485,760 Byte1,048,576 × 10
100 MiB104,857,600 Byte1,048,576 × 100
1 GiB1,073,741,824 Byte1,024³
5 GiB5,368,709,120 Byte1,073,741,824 × 5
10 GiB10,737,418,240 Byte1,073,741,824 × 10
100 GiB107,374,182,400 Byte1,073,741,824 × 100

この表をもとに、コマンドで指定するバイト数を計算せずにすぐ確認できます。たとえば「5MBのアップロード上限をテストしたい」場合は、5,242,880 Byteを指定すればOKです。

本記事のまとめ

この記事では、WindowsのfsutilコマンドmacOSのmkfileコマンドを使って、任意サイズのダミーファイルを簡単に作成する方法を紹介しました。

開発やテストの現場では、

  • アップロード上限を検証したい
  • ネットワークやディスクの速度を測りたい

といった場面で、特定サイズのファイルをすぐに用意できると非常に便利です。このページで紹介したコマンドを覚えておけば、開発・検証作業がグッと効率的になります。ぜひ手元の環境で試してみてください。

お読みいただきありがとうございました。

スポンサーリンク