Linux and Unix dd command
Quick links
About dd
Syntax
Examples
Related commands
Linux and Unix main page
Convert and copy a file.
dd [OPERAND]...
dd OPTION
| bs=BYTES | force ibs=BYTES and obs=BYTES |
| cbs=BYTES | convert BYTES bytes at a time |
| conv=CONVS | convert the file as per the comma separated symbol list |
| count=BLOCKS | copy only BLOCKS input blocks |
| ibs=BYTES | read BYTES bytes at a time |
| if=FILE | read from FILE instead of stdin |
| iflag=FLAGS | read as per the comma separated symbol list |
| obs=BYTES | write BYTES bytes at a time |
| 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 |
BLOCKS and BYTES may be followed by the following multiplicative suffixes: xM M, c 1, w 2, b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB
1000*1000*1000, G 1024*1024*1024,
and so on for T, P, E, Z, Y.
Each CONV symbol may be:
| ascii | from EBCDIC to ASCII |
| 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 upper case to lower case |
| nocreat | do not create the output file |
| excl | fail if the output file already exists |
| notrunc | do not truncate the output file |
| ucase | change lower case to upper case |
| swab | swap every pair of input bytes |
| noerror | continue after read errors |
| sync | pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs fdatasync physically write output file data before finishing fsync likewise, but also write metadata |
Each FLAG symbol may be:
| append | append mode (makes sense only for output) |
| direct | use direct I/O for data |
| 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 |
| nofollow | do not follow symlinks |
| noctty | do not assign controlling terminal from file Sending a USR1 signal to a running 'dd' process makes it print I/O statistics to standard error and then resume copying. $ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid 18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s |
Caution: Use dd cautiously, improperly entering the wrong values could inadvertently wipe, destroy, or overwrite the data on the hard drive.
dd if=/dev/sr0 of=/home/hope/exampleCD.iso bs=2048 conv=noerror,sync
Create a ISO disc image from the CD 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.
