  ibs=BYTES       read BYTES bytes at a time (must be a multiple of input sector size)
  obs=BYTES       write BYTES bytes at a time
  bs=BYTES        force ibs=BYTES and obs=BYTES


  conv=CONVS      convert the file as per the comma separated symbol list

  count=SECTORS   copy only SECTORS input sectors
  seek=SECTORS    skip SECTORS input sectors at start of output
  skip=SECTORS    skip SECTORS input sectors at start of input
                  (based on the device's reported sector size)

  if=FILE         read from FILE instead of stdin
  ifjoin=BASE.FMT read from split files with name BASE and splitformat FMT

  iflag=FLAGS     read as per the comma separated symbol list


  pattern=HEX     write HEX to every byte of the output

  textpattern=TEXT write the string TEXT repeatedly to the output


  of=FILE         write to FILE instead of stdout
  of:=COMMAND     pipe output to the given command

  oflag=FLAGS     write as per the comma separated symbol list


  split=BYTES     split the output into pieces of size BYTES
                  Note: BYTES must be a multiple of the device sector size.

  splitformat=FMT create extensions for split pieces using FMT
                  Extensions can be numerical starting at zero,
                  numerical starting at one, or alphabetical.
                  These options are selected by using a series of
                  zeros, ones, or a's, respectively. The number
                  of characters used indicates the desired length of
                  the extensions. For example, splitformat=1111
                  indicates four character numerical extensions
                  starting with 0001.

  vf=FILE         verify the input against FILE
  vfjoin=BASE.FMT verify the input against split files with name BASE and splitformat FMT
  verifylog=FILE  write the results of the verify to the given file

  progress=on     displays a progress meter
  progresscount=NUM number of blocks processed between each progress update
                  Note: excessively frequent progress updates will reduce
                  transfer rates. NUM should be chosen to cause updates at most
                  a few times per second.

  status=noxfer   suppress transfer statistics

  sizeprobe=on    estimates size of input file for use with status

  hash=ALGORITHM  computes ALGORITHM hashes of the input data
  hashconv=WHEN   determines when data should be hashed, either before
                  or after conversions
  hashwindow=BYTES  number of bytes for piecewise hashing
  hashlog=FILE    appends piecewise hashes to the log file

  errlog=FILE     appends errors to the log file

  log=FILE        appends hashes and errors to the same file

  errors=group    group read errors together

  

ALGORITHM can be a comma separated list of md5, sha1, sha256, and sha512


BLOCKS and BYTES may be followed by the following multiplicative suffixes:
xM M, c 1, w 2, b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.

Each CONV symbol may be:

  nocreat   do not create the output file
  excl      fail if the output file already exists
  notrunc   do not truncate the output file
  ucase     change lower case to upper case
  swab      swap every pair of input bytes
  noerror   continue after read errors
  sync      pad every input block with NULs to ibs-size; when used
            with block or unblock, pad with spaces rather than NULs
  fdatasync  physically write output file data before finishing
  fsync     likewise, but also write metadata

Each FLAG symbol may be:

  append    append mode (makes sense only for output; conv=notrunc suggested)
  direct    use direct I/O for data
  directory fail unless a directory
  dsync     use synchronized I/O for data
  sync      likewise, but also for metadata
  nonblock  use non-blocking I/O
  noatime   do not update access time
  noctty    do not assign controlling terminal from file
  nofollow  do not follow symlinks

Sending a USR1 signal to a running `dd' process makes it
print I/O statistics to standard error and then resume copying.

  $ dd if=/dev/zero of=/dev/null& pid=$!
  $ kill -USR1 $pid; sleep 1; kill $pid
  18335302+0 sectors in
  18335302+0 sectors out
  9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s

Options are:

      --help     display this help and exit
      --version  output version information and exit
      --flags    display compile-time flags

Report bugs to <dc3dd@dc3.mil>.
