For example, can I do:
cat /dev/sda1 > /dev/sda2
instead of using dd, and if not, why will this not work?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
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.
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).