How can I track progress of dd

The same information, displayed every second by in klanomath's answer, can displayed using your command. You just need to enter a controlT character from the keyboard while the dd command is executing.

By pressing the controlT character, you are sending the same SIGINFO signal to the dd command that the command pkill -INFO -x dd sends.


As of coreutils 8.24, dd added a status options. Install coreutils with Homebrew to update dd.

brew install coreutils
# All commands have been installed with the prefix 'g'
sudo gdd if=XXXX.iso of=/dev/diskX bs=1 status=progress 

> example:
> 139648967 bytes (140 MB, 133 MiB) copied, 304 s, 459 kB/s    

You can press Control + t while the dd command is running or for a nice progress bar you can install pv (pipe viewer) via Homebrew:

brew install pv

and then execute:

sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2

or (knowing size of the image, 16GB in this example):

dd if=disk-image.img | pv -s 16G | dd of=/dev/disk2


Example output 2:

(data transferred, elapsed time, speed, progress bar and estimated time):

    1.61GiB 0:12:19 [2.82MiB/s] [===>                 ] 10% ETA 1:50:25