dd - Man Page
convert and copy a file
Examples (TL;DR)
- Make a bootable USB drive from an isohybrid file (such as
archlinux-xxx.iso
) and show the progress:dd if=path/to/file.iso of=/dev/usb_drive status=progress
- Clone a drive to another drive with 4 MiB block size and flush writes before the command terminates:
dd bs=4194304 conv=fsync if=/dev/source_drive of=/dev/dest_drive
- Generate a file with a specific number of random bytes by using kernel random driver:
dd bs=100 count=1 if=/dev/urandom of=path/to/random_file
- Benchmark the sequential write performance of a disk:
dd bs=1024 count=1000000 if=/dev/zero of=path/to/file_1GB
- Create a system backup, save it into an IMG file (can be restored later by swapping
if
andof
), and show the progress:dd if=/dev/drive_device of=path/to/file.img status=progress
Synopsis
dd [OPERAND]...
dd OPTION
Description
Copy a file, converting and formatting according to the operands.
- bs=BYTES
read and write up to BYTES bytes at a time (default: 512); overrides ibs and obs
- cbs=BYTES
convert BYTES bytes at a time
- conv=CONVS
convert the file as per the comma separated symbol list
- count=N
copy only N input blocks
- ibs=BYTES
read up to 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
- 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=N
(or oseek=N) skip N obs-sized output blocks
- skip=N
(or iseek=N) skip N ibs-sized input blocks
- status=LEVEL
The LEVEL of information to print to stderr; 'none' suppresses everything but error messages, 'noxfer' suppresses the final transfer statistics, 'progress' shows periodic transfer statistics
N 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, P, E, Z, Y, R, Q. Binary prefixes can be used, too: KiB=K, MiB=M, and so on. If N ends in 'B', it counts bytes not blocks.
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
- ucase
change lower case to upper case
- sparse
try to seek rather than write all-NUL output blocks
- swab
swap every pair of input bytes
- sync
pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs
- excl
fail if the output file already exists
- nocreat
do not create the output file
- notrunc
do not truncate the output file
- noerror
continue after read errors
- 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; 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
- nocache
Request to drop cache. See also oflag=sync
- noctty
do not assign controlling terminal from file
- nofollow
do not follow symlinks
Sending a USR1 signal to a running 'dd' process makes it print I/O statistics to standard error and then resume copying.
Options are:
- --help
display this help and exit
- --version
output version information and exit
Author
Written by Paul Rubin, David MacKenzie, and Stuart Kemp.
Reporting Bugs
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Copyright
Copyright © 2024 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
See Also
Full documentation <https://www.gnu.org/software/coreutils/dd>
or available locally via: info '(coreutils) dd invocation'
Referenced By
amanda-devices(7), atari-hd-image(1), buffer(1), buffindexed.conf(5), cstream(1), cycbuff.conf(5), dcfldd(1), ddpt(8), dd_rescue(1), devio(1), dislocker-fuse(1), fdisk(8), gdcmimg(1), gpart(8), guestfs(3), guestfs-recipes(1), ioping(1), lumina-archiver(1), mkbiarch(8), nwipe(8), pipebench(1), pipesz(1), qemu-img(1), randombytes(1), rmlint(1), scpio(1), sfdisk(8), sg_dd(8), sgm_dd(8), sgp_dd(8), sg_read(8), sg_xcopy(8), spax(1), srec_examples(1), star(1), swapon(8), truncate(1), virt-p2v-make-kiwi(1), virt-sysprep(1), wodim(1), xfs(5), xfs_copy(8), xfs_repair(8), xorriso-dd-target(1), zerofree(8), zip2st(1).