2012-09-06 18:03:06 +0000 2012-09-06 18:03:06 +0000
91
91
Advertisement

Linuxで1GBのランダムファイルを作成するにはどうしたらいいでしょうか?

Advertisement

bashシェルを使っているのですが、openssl rand -base64 1000などのコマンドにddのアウトをパイプしたいと思っています。変数を使えばいいと思うのですが、どのようにすればいいのかよくわかりません。なぜ作成したいかというと、ランダムなテキストで1GBのファイルを作成したいからです。

Advertisement
Advertisement

回答 (4)

139
139
139
2012-09-06 18:17:14 +0000

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 バイトです (代わりに 109 バイトのために 10**9 を使うこともできますが)。* 3/4 の部分は Base64 のオーバーヘッドを考慮しており、encoded 出力を 1 GB にしています。

26
26
26
2015-05-21 14:52:41 +0000

1GB.binランダムコンテンツファイルの作成:

dd if=/dev/urandom of=1GB.bin bs=64M count=16 iflag=fullblock

2
Advertisement
2
2
2017-07-06 21:48:13 +0000
Advertisement

もし、正確に1GBにしたい場合は、次のようにします:

openssl rand -out $testfile -base64 792917038; truncate -s-1 $testfile

opensslコマンドは、ファイルを正確に1バイトの大きさにします。truncate コマンドはそのバイトを切り捨てます。

-1
-1
-1
2012-09-06 18:12:03 +0000
#!/bin/bash
openssl rand -base64 1000 | dd of=sample.txt bs=1G count=1

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

Advertisement

関連する質問

6
10
5
37
8
Advertisement
Advertisement