1

次のようなトリックで特定のサイズのファイルを作成することがよくあります

dd if=/dev/zero of=1gb.dd bs=1M count=1024

またはおそらく

dd if=/dev/urandom of=1gb.dd bs=1M count=1024
dd if=/dev/random of=1gb.dd bs=1M count=1024

しかし、0 やランダムではなく、すべて 1 を取得したい場合はどうすればよいでしょうか。

4

3 に答える 3

2

ランダム データの場合、ほとんどすべての場合に を使用します/dev/urandom。( も使用できますが/dev/random、エントロピーに縛られているため、はるかに遅くなります。urandomは から自己シードする PRNGrandomです。)

ゼロ以外のファイルの場合、次のようなものをお勧めします。

perl -e 'print chr(0xff) x 1000' > t

もちろん、0xff と 1000 は好みに合わせてカスタマイズしてください。

于 2010-06-04T19:30:23.050 に答える
1

これには の約 4 倍の時間がかかりますが、 crazyscot の回答dd if=/dev/zeroの Perl コマンドよりもわずかに長くなります。

touch shred.out; yes $'\xff' | tr -d $'\n' | shred --random-source=/dev/stdin --size=1G --iterations=1 shred.out

興味深いことに、この同様のコマンドは 1 GB に達する前に停止しました。

yes $'\xff' | tr -d $'\n' | dd if=/dev/stdin of=1gb.dd bs=1M count=1024
于 2010-06-04T21:44:57.783 に答える
-2

dd の後に別のコマンドを追加します。

sed 's/0/1/g' file.txt

すべての 0 を 1 に置き換えます。

おそらくより良い解決策がありますが、それはうまくいくはずです:-)

編集:実際には、その結果を新しいファイルにパイプするか、同じファイルを置き換える必要があります。sed はデフォルトで画面に出力します (IIRC)

于 2010-06-04T19:23:53.580 に答える