たとえば、次のことができますか。
cat /dev/sda1 > /dev/sda2
ddを使用する代わりに、そうでない場合、なぜこれが機能しないのですか?
原則として、どちらでも使用できます。重要な違いはほとんどありませんが、ここでは当てはまりません。
>
リダイレクトを使用すると、ターゲットファイルが開かれ、切り捨てられます。そうして初めて、それが書き込まれます。ただし、これはブロックデバイスには適用されません。サイズは固定されているため、「切り捨て」はブロックデバイスに対して何もしません。
cat
を使用すると、最初のnバイトのみをコピーするか、スキップ/シークするように簡単に指示することはできません。 これはdd
が役立つものです 。
cat
では、ブロックサイズを指定できません。これは、使用されているファイルシステムによってブロックサイズがマスクされている場合、今日は問題になりませんが、特定のブロックサイズ(テープ)でデバイスが読み取られる場所に違いをもたらすために使用されていました。
ハードディスクの場合、 cat
は少し速いかもしれません (ブロックサイズが適切に選択されているdd
よりも優れています。デフォルトでは速度が低下します)。