How to interpret the output of dd when the option status=progress is chosen

coreutilsdd

The dd manual page is very limited on this:
`

status=LEVEL
              The LEVEL of information to print to stderr; 'none' suppresses
              everything but error messages, 'noxfer' suppresses the final
              transfer statistics, 'progress' shows periodic transfer
              statistics

This does not say anything about the actual output, which looks something like this when I copy a large image file, e.g.:
dd if=input.img of=output.img status=progress

results in:

enter image description here

The transfer speed and the copying time so far is obvious, but what do the first three numbers mean?

Best Answer

The first number (1207841280) is the number of bytes copied so far. The second number is this interpreted as the SI unit Gigabytes (1 GB is 10003 bytes). The third number is this interpreted as the IEC unit Gibibytes (1 GiB is 10243 bytes). Notice the difference between "GB" and "GiB".

The source code of the dd command in the GNU coreutils package uses variables called si and iec to hold the last two of these numbers. See the print_xfer_stats function in dd.c. The actual output happens on line 821.