私は最近logrotateで遊びたくてテストファイルを作成しました。任意のサイズのファイルを生成するソリューションを探しています。私はこれが私の解決策であることがわかりました。
dd if=/dev/zero of=/path bs=1M count=30 status=progress
私もこれを見つけました:
dd if=/dev/urandom of=/path bs=1M count=30 status=progress
最初の例では0を含むファイルを作成し、2番目の例ではランダムなテキストを含むファイルを作成します。両方のファイルのサイズは30Mと同じです。
0よりもランダムなテキストでこのファイルを作成するのに時間がかかる理由を説明できる人はいますか?データサイズが同じなので..
よろしくお願いします:)
ベストアンサー1
出力からわかるように、どちらの方法も非常に高速です。しかし、データソース間には明らかな違いがあります。
/dev/zero
ダミーファイルなので、ゼロストリームを生成します。これは非常に簡単な作業です。/dev/urandom
実際、カーネルのエントロピープールにアクセスして乱数を生成するので、単に同じ固定値を生成するよりも高速です/dev/zero
。
/dev/urandom
これがで読むことがで読むのと同じくらい速くない理由です/dev/zero
。興味があれば、に関するウィキペディア記事/dev/random
追加の読書のための出発点として使用できます。