Whether you’re zeroing out an old disk drive or creating a USB flash drive with
your favorite Linux distro,
dd is there to take care of business.
One of the shortcomings of using
dd back in the day was the lack of
transparency into what it was actually doing and where it was at in the process.
This compounded interest when you factored in how slow drives used to be.
Fortunately, back in 2015 when GNU coreutils 8.24 came out,
dd was expanded to
status argument that you could use the set the level of information
you’d like to be printed to
To show a bit of status information periodically, you can slap
to the end of your command:
dd if=/path/to/some.iso of=/dev/drive status=progress
Not much to it!
Sadly though, if you’re like me, you probably forget to include this on the
regular. You could
CTRL+c the command and start it over, or you could leverage
kill command to give you some information about the command like so:
kill -USR1 $(pgrep ^dd$)
Great for a one time status, but what if you want a periodic update akin to the
dd argument? Combine this with the
watch command to spit out the
status every few seconds:
watch -n 5 'kill -USR1 $(pgrep ^dd$)'
Adjust the number passed into
-n to set the number of seconds you’d like the
command to run and you’re off to the races without having to restart the