dd built-in progress introduced in coreutils 8.24

  • On BSD, unlike Linux, many utilities including dd(1) will dump a progress report when receiving SIGINFO. This was traditionally bound to ^T in shells, either by default or using stty(1).

  • This is how it looks...

        [sc-lx-phys-05 /home/cvogel]
        $ dd if=/dev/zero of=/dev/null status=progress
        11086075904 bytes (11 GB) copied, 7.000001 s, 1.6 GB/s

  • I find this style of formatting specifiers an eyesore:

        fprintf (stderr,
                _("%"PRIuMAX"+%"PRIuMAX" records in\n"
                  "%"PRIuMAX"+%"PRIuMAX" records out\n"),
                r_full, r_partial, w_full, w_partial);

  • i've found that pv is useful for this purpose. however i've never been quite clear on what the best way to use bs with pv is. is it

      dd if=/dev/sda bs=1M | pv > sda.file
    
    or is this better

      dd if=/dev/sda bs=1M | pv | dd of=sda.file bs=1M

  • There's also this incredible tool that spies on processes to get real time progress:

    https://github.com/Xfennec/progress

  • dd was always a big special to me. It's the only command-line utility that I know that takes the simple approach to argument parsing. I don't know why everyone wants to prefix their arguments with --

  • I've been using dcfldd for years now, just because of the progress bar.

  • Example (from Reddit post): # dd if=arch.iso of=/dev/sdb bs=4M status=progress 61432564 bytes (61 MB) copied, 3.024017 s, 20.3 MB/s

  • I get "No repositories found"...

  • I get "no repositories found" for that link.

  • See: cat -v Considered Harmful by Rob Pike

  • Couldn't you just send a SIGUSR1 signal to see the progress?