新しいファイルを作成して1GBのランダムデータで埋めるにはどうすればよいですか?一部のソフトウェアをテストするにはこれが必要です。
私はまたは/dev/random
を使用することを好みます/dev/urandom
。
答え1
ほとんどのシングルマシンでは:
head -c 1G </dev/urandom >myfile
サフィックスがhead
わからない場合は、バイトサイズを指定できます。G
head -c 1073741824 </dev/urandom >myfile
head
このオプションがわからない場合(-c
一般的ですがPOSIXではありません。おそらくOpenBSDを使用しているでしょう):
dd bs=1024 count=1048576 </dev/urandom >myfile
答え2
疑似乱数データが十分であると仮定するdd if=/dev/urandom of=target-file bs=1M count=1000
と、必要に応じて機能します。
仕事(1)データブロックは入力ファイルから読み取られ、出力ファイルに書き込まれます。コマンドライン言語は少し珍しいですが、基本を理解する価値がある本当に便利なツールの1つです。
この場合if
は入力ファイル、of
は出力ファイル、bs
は「ブロックサイズ」です。私はサイズを簡単に設定するためにGNU拡張を使用します。 (dd
GNU拡張がない場合は1048576を使用することもできます。)は読み書き可能なブロック数ですcount
。if
of
/dev/urandom
/dev/random
Linuxでは、実際のランダムデータが使い果たされると、ブロックの代わりに強力な擬似ランダムデータに戻るため、より良い選択です。
また、見たいと思うかもしれませんhttp://www.random.org/直接生成せずに任意のデータを取得する別の方法です。
答え3
/dev/random/
/dev/urandom
優れた代替用途および/または使用暗号化方式で安全擬似乱数ジェネレータ(CSPRNG) opensslによって提供されます。まれに、必要に応じてアルゴリズムと暗号化方法を選択することもできます。
size=$( echo 1G | numfmt --from=iec ) # 1 G ==> 1073741824
openssl rand -out myfile "$size"
Base64が必要な場合:
openssl rand -base64 -out myfile "$size"
詳細を読んでくださいman rand
。
答え4
このソリューションはランダムを使用しませんが、マニュアルページを使用して大量のデータを生成します。ただし、これは最大サイズを保証しないため、cat
必要なサイズを得るために数秒間繰り返す必要があります。
man curl > /tmp/man-curl
または、より大きなサイズが必要な場合は、
for i in {1..10}; do man curl >> /tmp/man-curl; done