Linux and Unix dd command

Quick links

About dd
Syntax
Examples
Related commands
Linux and Unix main page

About dd

The dd command copies a file, converting the format of the data in the process, according to the operands specified.

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 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.

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

Caution: 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 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.

Related commands

cp — Copy files and directories.
fdisk — A disk partioning utility.