web-dev-qa-db-ja.com

Linuxで1GBのランダムファイルを作成する方法

私はbashシェルを使用していて、openssl Rand -base64 1000というコマンドからdd if={output of openssl} of="sample.txt bs=1G count=1のようなコマンドddにパイプアウトします。私は変数を使用することができると思いますが、しかし、私はそうするのが最善かどうかわかりません。ファイルを作成したいのは、ランダムテキストの1GBのファイルが欲しいからです。

82
PeanutsMonkey

if=は必須ではありません。代わりに何かをddにパイプで渡すことができます。

something... | dd of=sample.txt bs=1G count=1

openssl Randはとにかくバイト数を指定する必要があるので、ここでは役に立ちません。ですから、実際にはdd - は必要ありません。これはうまくいきます。

openssl Rand -out sample.txt -base64 $(( 2**30 * 3/4 ))

1ギガバイトは通常230 バイト(ただし、10には10**9を使用できます)9 代わりにバイト)。 * 3/4部分はBase64のオーバーヘッドを考慮して、エンコード出力を1 GBにします。

あるいは、/dev/urandomを使用することもできますが、OpenSSLより少し遅くなります。

dd if=/dev/urandom of=sample.txt bs=1G count=1

個人的には、私はbs=64M count=16などを使います。

dd if=/dev/urandom of=sample.txt bs=64M count=16
121
grawity

1GB.binランダムコンテンツファイルを作成します。

dd if =/dev/urandom = 1GB.bin bs = 64Mカウント= 16 iflag = fullblock

22
anneb

このスクリプトを試してください。

#!/bin/bash
openssl Rand -base64 1000 | dd of=sample.txt bs=1G count=1

このスクリプトは/dev/randomを使用しても構わない限り動作するかもしれません。

#!/bin/bash
dd if=/dev/random of="sample.txt bs=1G count=1"
0
Jonathan Reno

あなたが正確に1GBが欲しいなら、あなたは以下を使うことができます:

openssl Rand -out $ testfile -base64 792917038; -s-1 $ testfileを切り捨てます

Opensslコマンドはファイルをちょうど1バイト大きくします。 truncateコマンドはそのバイトを切り捨てます。

0
Joel Jacobs