dd(1)
NAME
dd − convert and copy a file
SYNTAX
dd [ keyword=value... ]
DESCRIPTION
The dd command copies the specified input file to the specified output with possible conversions. The standard input and output are used by default. The input and output block size may be specified to take advantage of raw physical I/O.
KEYWORDS
if= Specifies input file name; standard input is default
of= Specifies output file name; standard output is default
ibs= n Specifies input block size n bytes (default 512)
obs= n Specifies output block size (default 512)
bs= n Sets both input and output block size, superseding ibs and obs; also, if no conversion is specified, it is particularly efficient since no copy need be done
cbs= n Specifies conversion buffer size
skip= n Skips n input records before starting copy
files= n Copies n files from (tape) input
seek= n Seeks n records from beginning of output file before copying
count= n Copies only n input records
conv=ascii Converts EBCDIC to ASCII
ebcdicConvert ASCII to EBCDIC
ibmSlightly different map of ASCII to EBCDIC
lcaseMaps alphabetics to lower case
ucaseMaps alphabetics to upper case
swabSwaps every pair of bytes
noerrorDoes not stop processing on an error
syncPads every input record to ibs
... , ...Indicates several comma-separated conversions
Where sizes are specified, a number of bytes is expected. A number may end with k, b or w to specify multiplication by 1024, 512, or 2 respectively; a pair of numbers may be separated by x to indicate a product.
The cbs keyword is used only if ascii or ebcdic conversion is specified. In the former case cbs characters are placed into the conversion buffer, converted to ASCII, and trailing blanks trimmed and new-line added before sending the line to the output. In the latter case ASCII characters are read into the conversion buffer, converted to EBCDIC, and blanks added to make up an output record of size cbs.
After completion, dd reports the number of whole and partial input and output blocks.
EXAMPLES
To read an EBCDIC tape blocked ten 80-byte EBCDIC card images per record into the ASCII file x, type:
dd if=/dev/rht0 of=x ibs=800 cbs=80 conv=ascii,lcase
Note the use of raw magtape. The dd command is especially suited to I/O on the raw physical devices because it allows reading and writing in arbitrary record sizes.
To skip over a file before copying from magnetic tape, type:
(dd of=/dev/null; dd of=x) </dev/rht0
RESTRICTIONS
The ASCII/EBCDIC conversion tables are taken from the 256 character standard in the CACM Nov, 1968. The ibm conversion, while less accepted as a standard, corresponds better to certain IBM print train conventions. There is no universal solution.
Newlines are inserted only on conversion to ASCII; padding is done only on conversion to EBCDIC. These should be separate options.
CAUTION
Image copying disks using dd requires careful selection of the block size (bs, ibs, obs). Using the default block size of 512 bytes (1b) will always work, however this is not very efficient. In most cases the optimum block size is the number of 512 byte sectors per track. For example: to copy an RL02 disk to another RL02 disk use bs=20b, or to copy an RP06 to an RM03 use ibs=22b obs=32b. If the size of the input disk is larger that the size of the output disk a portion of the last record will not be transferred. An disk image copy using dd will always terminate with the message “No such device or address”, this indicates that the end of the disk has been reached.
DIAGNOSTICS
f+p records in(out): numbers of full and partial records read(written)