dd is a command-line utility for Unix and Unix-like operating systems whose primary purpose is to convert and copy files.
On Unix, device drivers for hardware (such as hard disk drives) and special device files (such as /dev/zero and /dev/random) appear in the file system just like normal files; dd can also read and/or write from/to these files, provided that function is implemented in their respective driver. As a result, dd can be used for tasks such as backing up the boot sector of a hard drive, and obtaining a fixed amount of random data. The dd program can also perform conversions on the data as it is copied, including byte order swapping and conversion to and from the ASCII and EBCDIC text encodings.
The name dd is an allusion to the DD statement found in IBM's Job Control Language (JCL), in which the initials stand for "Data Definition". The command's syntax resembles the JCL statement more than it does other Unix commands, so the syntax may have been a joke.
Originally intended to convert between ASCII and EBCDIC, dd first appeared in Version 5 Unix. The dd command is specified by IEEE Std 1003.1-2008, which is part of the Single UNIX Specification.