| DD(1) | General Commands Manual | DD(1) | 
dd —
| dd | [operand ...] | 
dd utility copies the standard input to the standard
  output. Input data is read and written in 512-byte blocks. If input reads are
  short, input from multiple reads are aggregated to form the output block. When
  finished, dd displays the number of complete and
  partial input and output blocks and truncated input records to the standard
  error output.
The following operands are available:
bs=nibs and obs operands. If
      no conversion values other than noerror,
      notrunc or sync are
      specified, then each input block is copied to the output as a single block
      without any aggregation of short blocks.cbs=ncount=nfiles=nibs=nif=fileiflag=flagsiseek=nskip=n.msgfmt=fmtprogress.When fmt does not correspond to any
        value given above, it contains a string that will be used as format
        specifier for the information summary output. Each conversion
        specification is introduced by the character %.
        The following ones are available:
obs=nof=filenotrunc conversion value is specified. If an
      initial portion of the output file is skipped (see the
      seek operand) the output file is truncated at that
      point.oflag=flagsiflag but for the call to
      open(2) on the output file.
      The default value is creat, which must be explicitly
      added in oflag if this option is used in order to
      output to a nonexistent file. The default or specified value is or'ed with
      rdwr for a first
      open(2) attempt, then on
      failure with wronly on a second attempt. In both
      cases, trunc is automatically added if none of
      oseek, seek, or
      conv=notrunc operands are used. See the
      INPUT AND OUTPUT FLAGS
      section for details.oseek=nseek=n.seek=nskip=nprogress=nconv=value[,value...]value is one of the symbols from the
      following list.
    ascii,
        oldasciiunblock value except that
          characters are translated from EBCDIC to ASCII before the records are
          converted. (These values imply unblock if the
          operand cbs is also specified.) There are two
          conversion maps for ASCII. The value ascii
          specifies the recommended one which is compatible with
          AT&T System V UNIX. The value
          oldascii specifies the one used in historic
          AT&T and pre-4.3BSD-Reno systems.blockcbs operand. Input records
          shorter than the conversion record size are padded with spaces. Input
          records longer than the conversion record size are truncated. The
          number of truncated input records, if any, are reported to the
          standard error output at the completion of the copy.ebcdic,
        ibm, oldebcdic,
        oldibmblock value except that
          characters are translated from ASCII to EBCDIC after the records are
          converted. (These values imply block if the
          operand cbs is also specified.) There are four
          conversion maps for EBCDIC. The value ebcdic
          specifies the recommended one which is compatible with
          AT&T System V UNIX. The value
          ibm is a slightly different mapping, which is
          compatible with the AT&T System V
          UNIX ibm value. The values
          oldebcdic and oldibm
          are maps used in historic AT&T and pre
          4.3BSD-Reno systems.lcasenoerrorsync conversion is also specified, any missing
          input data will be replaced with NUL bytes (or with spaces if a block
          oriented conversion value was specified) and processed as a normal
          input buffer. If the sync conversion is not
          specified, the input block is omitted from the output. On input files
          which are not tapes or pipes, the file offset will be positioned past
          the block in which the error occurred using
          lseek(2).notruncdd. The
          notrunc value is not supported for tapes.osyncbs=n block size
          specification.sparseNUL bytes, try to seek the output file by the
          required space instead of filling them with
          NULs. This results in a sparse file on some
          file systems.swabsyncucaseunblockcbs operand. Any trailing
          space characters are discarded and a newline character is
        appended.Where sizes are specified, a decimal number of bytes is expected. Two or more numbers may be separated by an “x” to indicate a product. Each number may have one of the following optional suffixes:
When finished, dd displays the number of
    complete and partial input and output blocks, truncated input records and
    odd-length byte-swapping blocks to the standard error output. A partial
    input block is one where less than the input block size was read. A partial
    output block is one where less than the output block size was written.
    Partial output blocks to tape devices are considered fatal errors.
    Otherwise, the rest of the block will be written. Partial output blocks to
    character devices will produce a warning message. A truncated input block is
    one where a variable length record oriented conversion value was specified
    and the input line was too long to fit in the conversion record or was not
    newline terminated.
Normally, data resulting from input or conversion or both are aggregated into output blocks of the specified size. After the end of input is reached, any remaining output is written as a block. This means that the final output block may be shorter than the output block size.
If dd receives a
    SIGINFO signal (see the
    status argument for
    stty(1)), the current input and
    output block counts will be written to the standard error output in the same
    format as the standard completion message. If dd
    receives a SIGINT signal, the current input and
    output block counts will be written to the standard error output in the same
    format as the standard completion message and dd
    will exit.
The flags that apply to both input and output are:
alt_ioasyncSIGIO signaling for I/O.cloexecdirectdirectorydd.exlocknocttynofollownonblocknosigpipeEPIPE instead of raising
      SIGPIPE.shlocksyncThe flags that apply to only input are:
rdonlyrdwrrsyncsync option is
      also set.The flags that apply to only output are:
appendcreatdsyncexcltruncwronlydd utility exits 0 on success,
  and >0 if an error occurs.
zcat NetBSD-9.2-amd64-install.img.gz | \
    progress dd of=/dev/rsd0 bs=1m
To print summary information in human-readable form:
dd if=/dev/zero of=/dev/null count=1
  msgfmt=humanTo customize the information summary output and print it through unvis(3):
dd if=/dev/zero of=/dev/null count=1 \
     msgfmt='speed:%E, in %s seconds\n' 2>&1 | unvis
dd utility is expected to be a superset of the
  IEEE Std 1003.2 (“POSIX.2”) standard.
  The files and msgfmt operands
  and the ascii, ebcdic,
  ibm, oldascii,
  oldebcdic and oldibm values
  are extensions to the POSIX standard.
dd utility appeared in
  Version 5 AT&T UNIX.
| January 14, 2022 | NetBSD 10.1 |