DD(1) DD(1)
NAME
dd - convert and copy a file
SYNOPSIS
dd[--help][--version][if=file][of=file][ibs=bytes][obs=bytes]
[bs=bytes][cbs=bytes][skip=blocks][seek=blocks][count=blocks]
[conv={ascii,ebcdic,ibm,block,unblock,lcase,ucase,swab,noerror,
notrunc,sync}]
DESCRIPTION
dd copies a file (from standard input to standard output, by default)
using specific input and output blocksizes, while optionally performing
conversions on it.
It reads the input one block at a time, using the specified input block
size (the default is 512 bytes). If the bs=bytes option was given, and
no conversion other than sync, noerror, or notrunc was specified, it
writes the amount of data read (which could be smaller than what was
requested) in a separate output block. This output block has precisely
the same length as was read unless the sync conversion was specified,
in which case the data is padded with NULs (or spaces, see below).
Otherwise, the input, read one block at a time, is processed and the
resulting output is collected and written in blocks of the specified
output block size. The final output block may be shorter.
The numeric-valued options below (bytes and blocks) can be followed by
a multiplier: 'k'=1024, 'b'=512, 'w'=2, 'c'=1 ('w' and 'c' are GNU
extensions; 'w' should never be used - it means 2 in System V and 4 in
4.2BSD). Two or more of such numeric expressions can be multiplied by
putting 'x' in between. The GNU fileutils-4.0 version also allows the
following multiplicative suffixes in the specification of blocksizes
(in bs=, cbs=, ibs=, obs=): M=1048576, G=1073741824, and so on for T,
P, E, Z, Y. A 'D' suffix makes them decimal: kD=1000, MD=1000000,
GD=1000000000, etc. (Note that for ls, df, du the size of M etc. is
determined by environment variables, but for dd it is fixed.)
OPTIONS
if=file
Read from file instead of standard input.
of=file
Write to file instead of standard output. Unless conv=notrunc
is given, dd truncates file to zero bytes (or the size specified
with seek=).
ibs=bytes
Read bytes bytes at a time. The default is 512.
obs=bytes
Write bytes bytes at a time. The default is 512.
bs=bytes
Both read and write bytes bytes at a time. This overrides ibs
and obs. (And setting bs is not equivalent with setting both
ibs and obs to this same value, at least when no conversion
other than sync, noerror and notrunc is specified, since it
stipulates that each input block shall be copied to the output
as a single block without aggregating short blocks.)
cbs=bytes
Specify the conversion block size for block and unblock.
skip=blocks
Skip blocks ibs-byte blocks in the input file before copying.
seek=blocks
Skip blocks obs-byte blocks in the output file before copying.
count=blocks
Copy blocks ibs-byte blocks from the input file, instead of
everything until the end of the file.
conv=CONVERSION[,CONVERSION]...
Convert the file as specified by the CONVERSION argument(s).
(No spaces around any comma(s).)
Conversions:
ascii Convert EBCDIC to ASCII.
ebcdic Convert ASCII to EBCDIC.
ibm Convert ASCII to alternate EBCDIC.
block For each line in the input, output cbs bytes, replacing
the input newline with a space and padding with spaces as
necessary.
unblock
Replace trailing spaces in each cbs-sized input block
with a newline.
lcase Change uppercase letters to lowercase.
ucase Change lowercase letters to uppercase.
swab Swap every pair of input bytes. If an odd number of
bytes are read the last byte is simply copied (since
there is nothing to swap it with). [POSIX 1003.2b, PASC
interpretations 1003.2 #3 and #4]
noerror
Continue after read errors.
notrunc
Do not truncate the output file.
sync Pad every input block to size of ibs with trailing zero
bytes.
GNUSTANDARDOPTIONS
--help Print a usage message on standard output and exit successfully.
--version
Print version information on standard output, then exit success-
fully.
-- Terminate option list.
ENVIRONMENT
The variables LANG, LC_ALL, LC_CTYPE and LC_MESSAGES have the usual
meaning.
CONFORMINGTO
POSIX 1003.2
EXAMPLE
Often a tape drive will not accept arbitrarily sized blocks, and dd
would get an I/O error for the last fragment of data that does not fill
an entire block. Use 'dd if=myfile of=/dev/mytape conv=sync' to get
everything on tape. Of course, reading it back will now produce a
slightly larger file, with nulls added at the end.
BUGS
Commands like 'dd if=myfile of=/dev/fd0 bs=1k seek=172' fail on some
systems because dd tries to truncate the output file, but truncation of
a block device is not possible. In such cases, add the 'conv=notrunc'
option.
NOTES
This page describes dd as found in the fileutils-4.0 package; other
versions may differ slightly. Mail corrections and additions to
aeb
cwi.nl. Report bugs in the program to fileutils-
bugs
gnu.edu.
GNU fileutils 4.0 1998-11 DD(1)