回答:
これをマンページよりもうまく説明する方法が本当にわかりません。
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
代わりに使用することができます。それは高速で、通常どこでも利用できます。
わかりました、あなたはマニュアルページが詳細ではないと言ったので、私は動いている人についてのわかりやすい比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つより少ない箱があるなら、彼はそれを追加するために箱のほかに見つけた花瓶を取ります)。あなたが教えてくれた場合dd
にcount
のみ、5、とどこかでそれを書く、彼は彼が見た最初の5つのブロックをコピーすると、あなたがしたい場所に書き込みます。
seek=N skip N obs-sized blocks at start of output
男は通常、負荷を落とすために最初に利用可能な場所を見つけます。これは通常(ディスクの)開始時にあり、最後までいっぱいになり続けます。さて、これdd
で、ホールの代わりに、さらに内側の部屋の1つで開始するように、さらに開始するように指示します。スターティングブロックを「スキップ」するだけです。
今、あなたが何をしているのかに応じて、ソースと宛先に基づいて異なる組み合わせが必要になります。また、読み取りと書き込みの形式も必要です。別々に検索することをお勧めします。