dd - Converts and copies a file
Interfaces documented on this reference page conform to industry standards
dd: XCU5.0, SVID 4
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
The option=value operand set may take any of the following forms:
Specifies the input file name; standard input is the default.
Specifies the output file name; standard output is the default.
ibs=, obs=, bs= and cbs=
For the above operands, the application must supply an expression
specifying a size in bytes. The expression, expr can be:
+ a positive decimal number
+ a positive decimal number followed by k specifying mutiplication
+ a positive decimal number followed by b specifying multiplication
+ two or more positive decimal numbers with or without k or b
separated by x, specifying the product of the indicated values.
All the operands will be processed before any input is read.
Skips number input records before starting copy.
[Tru64 UNIX] Copies number input files before terminating (makes sense
only where input is a magnetic tape or similar device).
[Tru64 UNIX] Seeks to the Nth record from the beginning of input file
[Tru64 UNIX] Seeks to the Nth record from the beginning of output file
before copying. Same as seek=number.
Seeks to the Nth record from the beginning of output file before copy-
ing. Same as oseek=number.
Copies only number input records.
Specifies one or more of the following conversions:
Converts EBCDIC to ASCII.
Converts variable-length records to fixed-length.
Converts ASCII to EBCDIC.
Converts IBM-EBCDIC to ASCII.
ibm Performs a slightly different map of ASCII to EBCDIC.
Converts fixed-length records to variable-length.
Makes all alphabetic characters lower case.
Makes all alphabetic characters upper case.
Swaps every pair of bytes.
Does not stop processing on an error.
Pads every input record to ibs.
[Tru64 UNIX] Creates a sparse output file as described in AdvFS
Do not truncate the output file. Preserve blocks in the output file
not explicitly written by this invocation of the dd utility. (See
the of=output_file operand.)
... , ...
Allows several comma-separated conversions.
The dd command reads the specified input file or standard input, does the
specified conversions, and copies it to the specified output file or stan-
dard output. The input and output block size may be specified to take
advantage of raw physical I/O. The terms block and record refer to the
quantity of data read or written by dd in one operation and are not neces-
sarily the same size as a disk block.
Where sizes are specified, a number of bytes is expected. A number may end
with w, b, or k to specify multiplication by 2, 512, or 1024, respectively;
a pair of numbers can be separated by an x to indicate a product.
The cbs specification is used if one of the following conversions is speci-
fied: ascii, unblock, ebcdic, ibm, or block. For the first two conver-
sions, dd places characters in a conversion buffer of size cbs, converts
these characters to ASCII, trims trailing spaces, and adds newline charac-
ters before sending data to the specified output. For the latter three
cases, dd places ASCII characters in the conversion buffer, converts these
characters to EBCDIC, and adds trailing spaces to create an output record
of size cbs.
After it finishes, dd reports the number of whole and partial input and
1. [Tru64 UNIX] To copy to a raw disk, the disk label must first be
zeroed using the disklabel -z command. For example:
disklabel -z /dev/disk/dsk1
[Tru64 UNIX] If you do not zero out the disk label, dd fails with the
following error message:
dd write error: Read-only file system
2. The ASCII/EBCDIC conversion tables are taken from the 256 character
standard in the CACM November, 1968. There is no universal standard
for EBCDIC/ASCII translation.
3. [Tru64 UNIX] One must specify conv=noerror,sync when copying raw
disks with bad sectors to ensure dd stays synchronized.
4. [Tru64 UNIX] Certain combinations of arguments to conv= are permit-
ted. However, the block or unblock option cannot be combined with
ascii, ebcdic, or ibm. Invalid combinations silently ignore all but
the last mutually exclusive keyword.
5. [Tru64 UNIX] If you need to use dd to copy to a streaming tape and
the data is an odd length (not a multiple of 512 bytes), you must use
the conv=sync flag to fill the last record. Streaming tape devices
permit only multiples of 512 bytes.
6. [Tru64 UNIX] If option bs is used (or bs is equal to obs) and no
conversion is specified, then dd is particularly efficient since less
memory copies are done.
7. [Tru64 UNIX] The dd command does not support floppy disk multivo-
lumes, but it does support tape multivolumes. This means that when
ENOSPC is returned while reading or writing a tape, dd will prompt the
user for a new tape.
[Tru64 UNIX] In order to make use of tape multivolumes, the files
option must be used.
[Tru64 UNIX] Any file system archive that contains ACLs (access control
lists) that was created using dd is not exportable unless the target system
has the exact same password and group files. If there is a mismatch,
incorrect access may be granted to a file or directory.
The following exit values are returned:
0 The input file was successfully copied.
>>0 An error occurred
This message specifies the number of full and partial records both read and
f+p records in
f+p records out
The number of full records read or written (f) refers to the blocks of data
of size ibs or obs. The number of partial records read or written (p)
refers to the blocks of data smaller than ibs or obs.
1. To read an EBCDIC tape blocked ten 80-byte EBCDIC card images per
record into the ASCII file x, enter:
dd if=/dev/tape/tape0_d0 of=x ibs=800 cbs=80 conv=ascii,lcase
Note the use of raw magnetic tape. The dd command is especially
suited to I/O on the raw physical devices because it allows reading
and writing in arbitrary record sizes.
2. To convert an ASCII text file to EBCDIC, enter:
dd if=text.ascii of=text.ebcdic conv=ebcdic
This converts text.ascii to EBCDIC representation, storing this in
The following environment variables affect the execution of dd:
Provides a default value for the internationalization variables that
are unset or null. If LANG is unset or null, the corresponding value
from the default locale is used. If any of the internationalization
variables contain an invalid setting, the utility behaves as if none of
the variables had been defined.
If set to a non-empty string value, overrides the values of all the
other internationalization variables.
Determines the locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as opposed to multi-
byte characters in arguments).
Determines the locale for the format and contents of diagnostic mes-
sages written to standard error.
Determines the location of message catalogues for the processing of
Commands: cp(1), cpio(1), sed(1), tar(1), tr(1), trbsd(1)
Command and Shell User's Guide