dd is shell command for reading, writing and converting file data. Originally developed for Unix, it has been ported to many other operating systems (OSs) including Unix-like OSs, Windows, Plan 9 and Inferno.
The command can be used for many purposes. For relatively simple copying operations, it tends to be slower than domain-specific alternatives, but it excels at overwriting or truncating a file at any point or seeking in a file.
The command supports reading and writing files, and if a driver is available to support file-like access, the command can access devices too. Such access is typically supported on Unix and similar OSs that tend to provide file-like access to devices (such as storage) and special device files (such as /dev/zero and /dev/random). Therefore, the command can be used for tasks such as backing up the boot sector of a drive, and obtaining random data.
The command can also support converting data while copying; including byte order swapping and converting between ASCII and EBCDIC text encodings.