The ' dd ' command is one of the original Unix
utilities and should be in everyone's tool box. It can strip
headers, extract parts of binary files and write into the middle
of floppy disks; it is used by the Linux kernel Makefiles to
make boot images. It can be used to copy and convert magnetic
tape formats, convert between ASCII and EBCDIC, swap bytes, and
force to upper and lowercase.
For blocked I/O, the dd command has no competition in the
standard tool set. One could write a custom utility to do
specific I/O or formatting but, as dd is already available
almost everywhere, it makes sense to use it.
Like most well-behaved commands, dd reads from its standard
input and writes to its standard output, unless a command line
specification has been given. This allows dd to be used in
pipes, and remotely with the rsh remote shell command.
Unlike most commands, dd uses a keyword=value format for its
parameters. This was reputedly modeled after IBM System/360 JCL,
which had an elaborate DD 'Dataset Definition' specification for
I/O devices. A complete listing of all keywords is available
from GNU dd with
Using dd you can create backups of an entire harddisk or just a
parts of it. This is also usefull to quickly copy installations
to similar machines. It will only work on disks that are exactly
the same in disk geometry, meaning they have to the same model
from the same brand.