Linux dd command
On Unix-like operating systems, the dd command copies a file, converting the format of the data in the process, according to the operands specified.
This page describes the GNU/Linux version of dd.
Syntax
dd [OPERAND]...
dd OPTION
Operands
bs=BYTES | Read and write BYTES bytes at a time (also see ibs=,obs=). |
cbs=BYTES | Convert BYTES bytes at a time. |
conv=CONVS | Convert the file as per the comma separated symbol list. Each symbol may be one of the following, and represents a specific type of conversion: ascii from EBCDIC (Extended Binary Coded Decimal Interchange Code) to ASCII (American Standard Code for Information Interchange) ebcdic from ASCII to EBCDIC ibm from ASCII to alternate EBCDIC block pad newline-terminated records with spaces to cbs-size unblock replace trailing spaces in cbs-size records with newline lcase change uppercase to lowercase nocreat do not create the output file excl fail if the output file already exists notrunc do not truncate the output file ucase change lowercase to uppercase swab swap every pair of input bytes noerror continue after read errors sync pad every input block with NULLs to ibs-size; when used with block or unblock, pad with spaces rather than NULLs fdatasync physically write output file data before finishing fsync likewise, but also write metadata. |
count=BLOCKS | Copy only BLOCKS input blocks. |
ibs=BYTES | Read BYTES bytes at a time (default: 512). |
if=FILE | Read from FILE instead of stdin. |
iflag=FLAGS | Read as per the comma separated symbol list. Each symbol may be one of the following: append append mode (makes sense only for output; conv=notrunc suggested) direct use direct I/O for data directory fail unless a directory dsync use synchronized I/O for data sync likewise, but also for metadata fullblock accumulate full blocks of input (iflag only) nonblock use non-blocking I/O noatime do not update access time noctty do not assign controlling terminal from file nofollow do not follow symlinks. |
obs=BYTES | Write BYTES bytes at a time (default: 512). |
of=FILE | Write to FILE instead of stdout. |
oflag=FLAGS | Write as per the comma separated symbol list. |
seek=BLOCKS | Skip BLOCKS obs-sized blocks at start of output. |
skip=BLOCKS | Skip BLOCKS ibs-sized blocks at start of input. |
status=noxfer | Suppress transfer statistics. |
Options
--help | Display help and exit. |
--version | Display version information and exit. |
Numerical suffixes
BLOCKS and BYTES may be followed by the following multiplicative suffixes:
c=1
w=2
b=512
kB=1000
K=1024
MB=1000*1000
M=1024*1024
xM=M
GB=1000*1000*1000
G=1024*1024*1024
...and so on for T (terabytes), P (petabytes), E (exabytes), Z (zettabytes), and Y (yottabytes).
Examples
Use dd cautiously — improper usage or entering the wrong values could inadvertently wipe, destroy, or overwrite the data on your hard drive.
dd if=/dev/sr0 of=/home/hope/exampleCD.iso bs=2048 conv=noerror,sync
Create an ISO disc image from the CD (Compact Disc) in the computer.
dd if=/dev/sda of=~/disk1.img
Create an img file of the /dev/sda hard drive. To restore that image type: dd if=disk1.img of=/dev/sda
dd if=/dev/sda of=/dev/sdb
Copy the contents from the if= drive /dev/sda to the of= drive /dev/sdb.
Related commands
cp — Copy files and directories.
fdisk — A disk partitioning utility.