DD(1) User Commands DD(1)

# [NAME](#NAME)

dd - convert and copy a file

# [SYNOPSIS](#SYNOPSIS)

**dd** \[*OPERAND*]...  
**dd** *OPTION*

# [DESCRIPTION](#DESCRIPTION)

Copy a file, converting and formatting according to the operands.

[**bs=BYTES**](#bs=BYTES)

read and write up to BYTES bytes at a time (default: 512); overrides ibs and obs

[**cbs=BYTES**](#cbs=BYTES)

convert BYTES bytes at a time

[**conv=CONVS**](#conv=CONVS)

convert the file as per the comma separated symbol list

[**count=N**](#count=N)

copy only N input blocks

[**ibs=BYTES**](#ibs=BYTES)

read up to BYTES bytes at a time (default: 512)

[**if=FILE**](#if=FILE)

read from FILE instead of standard input

[**iflag=FLAGS**](#iflag=FLAGS)

read as per the comma separated symbol list

[**obs=BYTES**](#obs=BYTES)

write BYTES bytes at a time (default: 512)

[**of=FILE**](#of=FILE)

write to FILE instead of standard output

[**oflag=FLAGS**](#oflag=FLAGS)

write as per the comma separated symbol list

[**seek=N**](#seek=N)

(or oseek=N) skip N obs sized output blocks

[**skip=N**](#skip=N)

(or iseek=N) skip N ibs sized input blocks

[**status=LEVEL**](#status=LEVEL)

The LEVEL of information to print to standard error; '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](#ascii)

from EBCDIC to ASCII

[ebcdic](#ebcdic)

from ASCII to EBCDIC

[ibm](#ibm)

from ASCII to alternate EBCDIC

[block](#block)

pad newline-terminated records with spaces to cbs-size

[unblock](#unblock)

replace trailing spaces in cbs-size records with newline

[lcase](#lcase)

change upper case to lower case

[ucase](#ucase)

change lower case to upper case

[sparse](#sparse)

try to seek rather than write all-NUL output blocks

[swab](#swab)

swap every pair of input bytes

[sync](#sync)

pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs

[excl](#excl)

fail if the output file already exists

[nocreat](#nocreat)

do not create the output file

[notrunc](#notrunc)

do not truncate the output file

[noerror](#noerror)

continue after read errors

[fdatasync](#fdatasync)

physically write output file data before finishing

[fsync](#fsync)

likewise, but also write metadata

Each FLAG symbol may be:

[append](#append)

append mode (makes sense only for output; conv=notrunc suggested)

[direct](#direct)

use direct I/O for data

[directory](#directory)

fail unless a directory

[dsync](#dsync)

use synchronized I/O for data

[sync](#sync~2)

likewise, but also for metadata

[fullblock](#fullblock)

accumulate full blocks of input (iflag only)

[nonblock](#nonblock)

use non-blocking I/O

[noatime](#noatime)

do not update access time

[nocache](#nocache)

Request to drop cache. See also oflag=sync

[noctty](#noctty)

do not assign controlling terminal from file

[nofollow](#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**](#help)

display this help and exit

[**--version**](#version)

output version information and exit

# [AUTHOR](#AUTHOR)

Written by Paul Rubin, David MacKenzie, and Stuart Kemp.

# [REPORTING BUGS](#REPORTING_BUGS)

Report bugs to: &lt;bug-coreutils@gnu.org&gt;.  
Report any translation bugs to: &lt;https://translationproject.org/team/&gt;.  
GNU coreutils home page: &lt;https://www.gnu.org/software/coreutils/&gt;  
General help using GNU software: &lt;https://www.gnu.org/gethelp/&gt;

# [COPYRIGHT](#COPYRIGHT)

Copyright © 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later &lt;https://gnu.org/licenses/gpl.html&gt;.  
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

# [SEE ALSO](#SEE_ALSO)

Full documentation &lt;https://www.gnu.org/software/coreutils/dd&gt;  
or available locally via: info '(coreutils) dd invocation'

October 2026 GNU coreutils 9.12

---

Document: dd(1) from coreutils 9.12-r6 (Chainguard OS)
Source: https://git.savannah.gnu.org/git/coreutils.git
