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


24

私はどのように使用することに説明し、多くのガイドやフォーラムの投稿を読んだddが、私は気づいた一つのことは、人々は常に異なる値を使用することでbs=count=そしてseek=スイッチを。

誰かがこれらのスイッチが何をするかを正確に説明してください(マニュアルページはあまり詳細ではありません)、/ dev / randomまたは/ dev / zeroからファイルを作成し、上書きするなど、さまざまなタスクの最適な設定を説明してくださいパーティションと外部ドライブ。


回答:


27

これをマンページよりもうまく説明する方法が本当にわかりません。

bs=ブロックサイズを設定しbs=1Mます。たとえば、1MiBブロックサイズになります。

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

seek= 出力デバイスの先頭に書き込む代わりに、出力でこの数のブロックを探します。

そのため、たとえば、これは1MiB相当をy\n出力ファイルの8MiBの位置にコピーします。したがって、合計ファイルサイズは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代わりに使用することができます。それは高速で、通常どこでも利用できます。


21

わかりました、あなたはマニュアルページが詳細ではないと言ったので、私は動いている人についてのわかりやすい比theyでそれが意味することを説明します(それは名前で行きますdd):

   bs=BYTES
          read and write up to BYTES bytes at a time

dd何か(箱、花瓶、ベッド、米など)を拾い、必要な場所に移動して、それを降ろします。彼が負荷を落とさない限り、彼は何も選びません。今、あなたが彼が旅行ごとにどれだけ多くのオブジェクトを選ぶべきかを彼に伝える必要があるとき、これは何をするかbsです。彼が読み書きするデータの量を設定します。これは、すべての便利で一般的なコマンドでほぼ必須です。

   count=N
          copy only N input blocks

これにより、移動するボックスの合計量が決まります。このコンテキストのボックスは、ディスク上のブロックです。あなたは彼に5つの箱を動かすように言います、彼は5つ以上の箱があったとしても5つの箱だけを動かします(5つより少ない箱があるなら、彼はそれを追加するために箱のほかに見つけた花瓶を取ります)。あなたが教えてくれた場合ddcountのみ、5、とどこかでそれを書く、彼は彼が見た最初の5つのブロックをコピーすると、あなたがしたい場所に書き込みます。

   seek=N skip N obs-sized blocks at start of output

男は通常、負荷を落とすために最初に利用可能な場所を見つけます。これは通常(ディスクの)開始時にあり、最後までいっぱいになり続けます。さて、これddで、ホールの代わりに、さらに内側の部屋の1つで開始するように、さらに開始するように指示します。スターティングブロックを「スキップ」するだけです。

今、あなたが何をしているのかに応じて、ソースと宛先に基づいて異なる組み合わせが必要になります。また、読み取りと書き込みの形式も必要です。別々に検索することをお勧めします。


「彼は箱のほかに見つけた花瓶を持ってそれを足し合わせます」。この比phorは何を表していますか?
イニ

1
@Ini if readに属さない隣接ブロックがある場合、ddはそれを読み取って移動します。花瓶は箱ではありませんが、ddはそれを動かします。
Braiam
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.