# dd ``` dd [OPERAND]... dd OPTION ``` Copy, and optionally convert, a file system resource ## After Help ### Operands - `bs=BYTES` : read and write up to BYTES bytes at a time (default: 512); overwrites `ibs` and `obs`. - `cbs=BYTES` : the 'conversion block size' in bytes. Applies to the `conv=block`, and `conv=unblock` operations. - `conv=CONVS` : a comma-separated list of conversion options or (for legacy reasons) file flags. - `count=N` : stop reading input after N ibs-sized read operations rather than proceeding until EOF. See `iflag=count_bytes` if stopping after N bytes is preferred - `ibs=N` : the size of buffer used for reads (default: 512) - `if=FILE` : the file used for input. When not specified, stdin is used instead - `iflag=FLAGS` : a comma-separated list of input flags which specify how the input source is treated. FLAGS may be any of the input-flags or general-flags specified below. - `skip=N` (or `iseek=N`) : skip N ibs-sized records into input before beginning copy/convert operations. See iflag=seek_bytes if seeking N bytes is preferred. - `obs=N` : the size of buffer used for writes (default: 512) - `of=FILE` : the file used for output. When not specified, stdout is used instead - `oflag=FLAGS` : comma separated list of output flags which specify how the output source is treated. FLAGS may be any of the output flags or general flags specified below - `seek=N` (or `oseek=N`) : seeks N obs-sized records into output before beginning copy/convert operations. See oflag=seek_bytes if seeking N bytes is preferred - `status=LEVEL` : controls whether volume and performance stats are written to stderr. When unspecified, dd will print stats upon completion. An example is below. ```plain 6+0 records in 16+0 records out 8192 bytes (8.2 kB, 8.0 KiB) copied, 0.00057009 s, 14.4 MB/s ``` The first two lines are the 'volume' stats and the final line is the 'performance' stats. The volume stats indicate the number of complete and partial ibs-sized reads, or obs-sized writes that took place during the copy. The format of the volume stats is `+`. If records have been truncated (see `conv=block`), the volume stats will contain the number of truncated records. Possible LEVEL values are: - `progress` : Print periodic performance stats as the copy proceeds. - `noxfer` : Print final volume stats, but not performance stats. - `none` : Do not print any stats. Printing performance stats is also triggered by the INFO signal (where supported), or the USR1 signal. Setting the POSIXLY_CORRECT environment variable to any value (including an empty value) will cause the USR1 signal to be ignored. ### Conversion Options - `ascii` : convert from EBCDIC to ASCII. This is the inverse of the `ebcdic` option. Implies `conv=unblock`. - `ebcdic` : convert from ASCII to EBCDIC. This is the inverse of the `ascii` option. Implies `conv=block`. - `ibm` : convert from ASCII to EBCDIC, applying the conventions for `[`, `]` and `~` specified in POSIX. Implies `conv=block`. - `ucase` : convert from lower-case to upper-case. - `lcase` : converts from upper-case to lower-case. - `block` : for each newline less than the size indicated by cbs=BYTES, remove the newline and pad with spaces up to cbs. Lines longer than cbs are truncated. - `unblock` : for each block of input of the size indicated by cbs=BYTES, remove right-trailing spaces and replace with a newline character. - `sparse` : attempts to seek the output when an obs-sized block consists of only zeros. - `swab` : swaps each adjacent pair of bytes. If an odd number of bytes is present, the final byte is omitted. - `sync` : pad each ibs-sided block with zeros. If `block` or `unblock` is specified, pad with spaces instead. - `excl` : the output file must be created. Fail if the output file is already present. - `nocreat` : the output file will not be created. Fail if the output file in not already present. - `notrunc` : the output file will not be truncated. If this option is not present, output will be truncated when opened. - `noerror` : all read errors will be ignored. If this option is not present, dd will only ignore Error::Interrupted. - `fdatasync` : data will be written before finishing. - `fsync` : data and metadata will be written before finishing. ### Input flags - `count_bytes` : a value to `count=N` will be interpreted as bytes. - `skip_bytes` : a value to `skip=N` will be interpreted as bytes. - `fullblock` : wait for ibs bytes from each read. zero-length reads are still considered EOF. ### Output flags - `append` : open file in append mode. Consider setting conv=notrunc as well. - `seek_bytes` : a value to seek=N will be interpreted as bytes. ### General Flags - `direct` : use direct I/O for data. - `directory` : fail unless the given input (if used as an iflag) or output (if used as an oflag) is a directory. - `dsync` : use synchronized I/O for data. - `sync` : use synchronized I/O for data and metadata. - `nonblock` : use non-blocking I/O. - `noatime` : do not update access time. - `nocache` : request that OS drop cache. - `noctty` : do not assign a controlling tty. - `nofollow` : do not follow system links.