Linux dd command

Updated: 03/13/2021 by Computer Hope
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

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

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