web-dev-qa-db-ja.com

ファイルにランダムなデータを入力するにはどうすればよいですか?

新しいファイルを作成して1ギガバイト相当のランダムデータで埋めるにはどうすればよいですか?一部のソフトウェアをテストするには、これが必要です。

/dev/randomまたは/dev/urandomを使用したいと思います。

145

ほとんどのユニックス:

head -c 1G </dev/urandom >myfile

headGサフィックスを理解できない場合は、サイズをバイト単位で指定できます。

head -c 1073741824 </dev/urandom >myfile

head-cオプションを理解しない場合(一般的ですがPOSIXではありません。おそらくOpenBSDを使用しています):

dd bs=1024 count=1048576 </dev/urandom >myfile

Linuxでは/dev/randomを使用せず、/dev/urandomを使用してください。

疑似ランダムデータで十分であると仮定すると、dd if=/dev/urandom of=target-file bs=1M count=1000は必要な処理を実行します。

dd(1) は、入力ファイルからデータのブロックを読み取り、出力ファイルに書き込みます。コマンドライン言語は少し風変わりですが、基本を習得する価値のある本当に便利なツールの1つです。

この場合、ifは入力ファイル、ofは出力ファイル、bsは「ブロックサイズ」で、GNU拡張子を使用しましたより便利にサイズを設定します(ddにGNU拡張子がない場合も1048576を使用できます。)countはブロックする数です。 ifから読み取り、ofに書き込みます。

/dev/urandom/dev/randomより良い選択です。Linuxでは、真にランダムなデータが使い果たされると、ブロックするのではなく、強力な疑似ランダムデータにフォールバックします。

http://www.random.org/ を、自分で生成せずにランダムデータを取得するための別の方法として確認することもできます。

37
Daniel Pittman
while true;do head /dev/urandom | tr -dc A-Za-z0-9;done | head -c 5000K | tee  5000kb

これを使用して、5MBのランダム文字データを生成しました。別のサイズが必要な場合は、-cヘッドの値、出力ファイル名を変更して実行し、実行が完了するまで待機します。

2
James Jithin