DD(1) | General Commands Manual | DD(1) |
dd
— convert and
copy a file
dd |
[operand ...] |
The dd
utility copies the standard input
to the standard output, applying any specified conversions. Input data is
read and written in 512-byte blocks. If input reads are short, input from
multiple reads are aggregated to form the output block. When finished,
dd
displays the number of complete and partial input
and output blocks and truncated input records to the standard error
output.
The following operands are available:
if
=fileof
=filenotrunc
conversion value is specified. If an
initial portion of the output file is skipped (see the
seek
operand), the output file is truncated at
that point.ibs
=nobs
=nbs
=nibs
and
obs
operands. If no conversion values other than
noerror
, notrunc
, or
sync
are specified, then each input block is
copied to the output as a single block without any aggregation of short
blocks.cbs
=ncount
=nfiles
=nseek
=nskip
=nstatus
=valueconv
=value[,value
...]ascii
unblock
value except that
characters are translated from EBCDIC to ASCII before the records are
converted. (These values imply unblock
if the
operand cbs
is also specified.)block
cbs
operand. Input records
shorter than the conversion record size are padded with spaces. Input
records longer than the conversion record size are truncated. The
number of truncated input records, if any, is reported to the standard
error output at the completion of the copy.ebcdic
,
ibm
block
value except that
characters are translated from ASCII to EBCDIC after the records are
converted. (These values imply block
if the
operand cbs
is also specified.) There are two
conversion maps for EBCDIC. The value ebcdic
specifies the recommended one which is compatible with
AT&T System V UNIX. The value
ibm
is a slightly different mapping, which is
compatible with the AT&T System V
UNIX ibm
value.fsync
lcase
noerror
sync
conversion is also specified, any missing
input data will be replaced with NUL bytes (or with spaces if a block
oriented conversion value was specified) and processed as a normal
input buffer. If the sync
conversion is not
specified, the input block is omitted from the output. On input files
which are not tapes or pipes, the file offset will be positioned past
the block in which the error occurred using
lseek(2).notrunc
dd
. The
notrunc
value is not supported for tapes.osync
bs
block size
specification.swab
sync
ucase
unblock
cbs
operand. Any trailing
space characters are discarded and a newline character is
appended.Where sizes are specified, a decimal number of bytes is expected. If the number ends with a ‘b’, ‘k’ or ‘K’, ‘m’ or ‘M’, ‘g’ or ‘G’, or ‘w’, the number is multiplied by 512, 1024 (1K), 1048576 (1M), 1073741824 (1G), or the number of bytes in an integer, respectively. Two or more numbers may be separated by an ‘x’ to indicate a product.
When finished, dd
displays the number of
complete and partial input and output blocks, truncated input records, and
odd-length byte-swapping blocks to the standard error output. A partial
input block is one where less than the input block size was read. A partial
output block is one where less than the output block size was written.
Partial output blocks to tape devices are considered fatal errors.
Otherwise, the rest of the block will be written. Partial output blocks to
character devices will produce a warning message. A truncated input block is
one where a variable length record oriented conversion value was specified
and the input line was too long to fit in the conversion record or was not
newline terminated.
Normally, data resulting from input or conversion or both are aggregated into output blocks of the specified size. After the end of input is reached, any remaining output is written as a block. This means that the final output block may be shorter than the output block size.
If dd
receives a
SIGINFO
(see the “status” argument for
stty(1)) signal, the current
input and output block counts will be written to the standard error output
in the same format as the standard completion message. If
dd
receives a SIGINT
signal,
the current input and output block counts will be written to the standard
error output in the same format as the standard completion message and
dd
will exit.
The dd
utility exits 0 on success,
and >0 if an error occurs.
Write an OpenBSD floppy image to a floppy disk:
# dd if=floppy34.fs of=/dev/rfd0c
bs=32k
Create an ISO-9660 image of a CD-ROM:
# dd if=/dev/rcd0c of=disk.iso
bs=32k
The dd
utility is compliant with the
IEEE Std 1003.1-2008 (“POSIX.1”)
specification.
The conversions ascii
,
ebcdic
, and ibm
are marked
by IEEE Std 1003.1-2008 (“POSIX.1”) as
being an X/Open System Interfaces option.
The files
and
status
operands, the fsync
and osync
conversions, the ‘K’,
‘m’, ‘M’, ‘g’, ‘G’,
and ‘w’ size multipliers and SIGINFO
handling are all extensions to the IEEE Std 1003.1-2008
(“POSIX.1”) specification.
A dd
utility appeared in
Version 5 AT&T UNIX.
February 14, 2020 | OpenBSD-6.7 |