ddコマンドで「bs」、「count」、「seek」の違いは何ですか?

ddコマンドで「bs」、「count」、「seek」の違いは何ですか?

私はそれを使用する方法を説明する多くのガイドとフォーラムの記事を読んでいますddが、私が注目したことの1つは、人々が常にbs=count=およびスイッチにseek=異なる値を使用することです。

誰かがこれらのスイッチの機能が正確に何であるかを説明し(ページがそれほど詳細ではない)、またはファイル作成、パーティション、および外部ドライブの上書きなど、さまざまなタスクに最適な設定が何であるmanかを説明できますか?/dev/random/dev/zero

ベストアンサー1

私はこれをマニュアルページよりもよく説明する方法を本当に知りません。

bs=ブロックサイズを設定します(例:bs=1M1MiBブロックサイズ)。

count=このブロック数だけをコピーします(デフォルトは、ddが永久に続くか、入力が使い果たされるまで続きます)。理想的には、ブロックは特定のサイズですが、不完全なbs=読み取りが発生する可能性があるため、特定のcount=量のデータをコピーするために()を使用する場合は、そのcount*bsブロックも提供する必要がありますiflag=fullblock

seek=出力デバイスの先頭に書き込むのではなく、出力でこのブロック数を見つけます。

たとえば、これにより、1MiBのコンテンツがy\n8MiBの出力ファイルにコピーされます。したがって、合計ファイルサイズは9MiBになります。

$ yes | dd bs=1M count=1 seek=8 iflag=fullblock of=outputfile
$ ls -alh outputfile
9.0M Jun  3 21:02 outputfile
$ hexdump -C outputfile
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00800000  79 0a 79 0a 79 0a 79 0a  79 0a 79 0a 79 0a 79 0a  |y.y.y.y.y.y.y.y.|
*
00900000

/dev/randomパーティションに言及して上書きしたので...遅すぎる/dev/randomので時間がかかります。/dev/urandom直接使用することができ、shred -v -n 1迅速かつ一般的にどこでも動作します。

おすすめ記事