Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cp(1)

tr(1)

DD(1)  —  UNIX Programmer’s Manual

NAME

dd − convert and copy a file

SYNOPSIS

dd [option=value] ... 

DESCRIPTION

Dd 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. 

option values

if= input file name; standard input is default

of= output file name; standard output is default

ibs=n input block size n bytes (default 512)

obs=n output block size (default 512)

bs=n set 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 conversion buffer size

skip=n skip n input records before starting copy

files=n copy n input files before terminating (makes sense only where input is a magtape or similar device). 

seek=n seek n records from beginning of output file before copying

count=n copy only n input records

conv=ascii convert EBCDIC to ASCII

ebcdicconvert ASCII to EBCDIC

ibmslightly different map of ASCII to EBCDIC

blockconvert variable length records to fixed length

unblockconvert fixed length records to variable length

lcasemap alphabetics to lower case

ucasemap alphabetics to upper case

swabswap every pair of bytes

noerrordo not stop processing on an error

syncpad every input record to ibs

... , ...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. 

Cbs is used only if ascii, unblock, ebcdic, ibm, or block conversion is specified.  In the first two cases, cbs characters are placed into the conversion buffer, any specified character mapping is done, trailing blanks trimmed and new-line added before sending the line to the output.  In the latter three cases, characters are read into the conversion buffer, 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. 

For example, to read an EBCDIC tape blocked ten 80-byte EBCDIC card images per record into the ASCII file x:

dd if=/dev/rmt0 of=x ibs=800 cbs=80 conv=ascii,lcase

Note the use of raw magtape.  Dd is especially suited to I/O on the raw physical devices because it allows reading and writing in arbitrary record sizes. 

SEE ALSO

cp(1), tr(1)

DIAGNOSTICS

f+p records in(out): numbers of full and partial records read(written)

BUGS

The ASCII/EBCDIC conversion tables are taken from the 256 character standard in the CACM Nov, 1968.  The ‘ibm’ conversion, while less blessed as a standard, corresponds better to certain IBM print train conventions.  There is no universal solution. 
One must specify “conv=noerror,sync” when copying raw disks with bad sectors to insure dd stays synchronized. 

Certain combinations of arguments to conv= are permitted.  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. 

4th Berkeley Distribution  —  April 29, 1985

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026