dd(C) 06 January 1993 dd(C) Name dd - convert and copy a file Syntax 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. if=file Input filename; standard input is default. of=file Output filename; standard output is default. This option does not truncate an existing file. ibs=n Input block size is n bytes (default is BSIZE block size). obs=n Output block size (default is BSIZE block size). bs=n Sets both input and output block size, superseding ibs and obs. If no conversion is specified, it is particularly efficient since no in-core copy needs to be done. cbs=n Conversion buffer size. skip=n Skips n input records before starting copy. (The records are read but not output.) seek=n Seeks n records from beginning of output file before copy- ing. iseek=n Same as skip, but seeks over the records (that is, uses iseek(S)) instead of reading them. oseek=n As for seek. files=n Specify the number of input files to concatenate. This option effectively causes a sequence of n EOFs to be ignored. (It is generally only useful for tape.) conv=block Convert ASCII to unblocked ASCII. conv=unblock Convert unblocked ASCII to ASCII. count=n Copies only n input records. conv=ascii Converts EBCDIC to ASCII. conv=ebcdic Converts ASCII to EBCDIC. conv=ibm Slightly different map of ASCII to EBCDIC. conv=lcase Maps alphabetic characters to lowercase. conv=ucase Maps alphabetic characters to uppercase. conv=swab Swaps every pair of bytes. conv=noerror Does not stop processing on an error. conv=sync Pads every input record to ibs. conv=... , ... 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 respec- tively; a pair of numbers may be separated by x to indicate a product. cbs is used only if ascii, ebcdic, or ibm conversion is specified. In the former case, cbs characters are placed into the conversion buffer, converted to ASCII, and trailing blanks trimmed and newline added before sending the line to the output. In the latter two cases, ASCII charac- ters 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 The first example reads an EBCDIC tape, blocked ten 80-byte EBCDIC card images per record, into the ASCII file outfile: dd if=/dev/rct0 of=outfile ibs=800 cbs=80 conv=ascii,lcase Note the use of raw magtape. dd is especially suited to I/O on raw phy- sical devices because it allows reading and writing in arbitrary record sizes. The next example shows how to copy the contents of one floppy disk to another, using /tmp as a temporary storage area. The source disk is inserted in the drive, and the following command entered: dd if=/dev/rfd0 of=/tmp/tempfile Next the source disk is removed from the drive, and the destination disk inserted. The data in the temporary file, /tmp/tempfile, may now be copied to this disk: dd if=/tmp/tempfile of=/dev/rfd0 Finally remove the temporary file: rm /tmp/tempfile See also copy(C), cp(C) and tar(C). Diagnostics f+p records in(out) Numbers of full and partial records read (writ- ten). Notes The ASCII/EBCDIC conversion tables are taken from the 256-character stan- dard in the CACM Nov, 1968. The ibm conversion 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. When using dd with a raw device, specify the block size as a multiple of 1K. For example, to use a 9K block size, enter: dd if=file of=/dev/rct0 bs=18b You could also enter: dd if=file of=/dev/rct0 bs=9k Standards conformance dd is conformant with: AT&T SVID Issue 2; and X/Open Portability Guide, Issue 3, 1989.