For example, can I do:

cat /dev/sda1 > /dev/sda2

instead of using dd, and if not, why will this not work?

  • 2
    You should be able to do this using cat, cp, dd and a dozen other tools. dd has the advantage that you can specify a block size which can speed things up.
    – Hennes
    Dec 24 '13 at 12:12

In principle, you could use either. There are few important differences, but none that apply here.

  • When you use > redirection, the target file is opened, and truncated. Only then it is written to. However this does not apply to block devices — they have a fixed size, so “truncation” doesn't do anything to them.

  • With cat you can not easily tell it to only copy the first n bytes or skip/seek. This is what dd is useful for.

  • cat does not let you specify a block size. This won't matter today when block sizes are masked by the file systems being used, but it used to make a difference where devices would be read from with specific block sizes (tapes).

  • For hard disks, cat may be slightly faster (better even than dd with a well-chosen block size, let alone the default which slows things down).

  • 1
    That is an excellent post you linked to.
    – Hennes
    Dec 24 '13 at 13:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.