while true; do kill -USR1 $pid && sleep 1 && clear; done
The important thing to grasp here isn't the filename or location of your input or output, or even the block size for that matter, but the fact that you can keep an eye on 'dd' as it's running to see where you are at during its execution.
This version was mentioned in the comments. Credits go to flatcap.
Only slightly different than previous commands. The benefit is that your "watch" should die when the dd command has completed. (Of course this would depend on /proc being available)
Pressing ctrl-t will display the progress Show Sample Output
The previously-posted one-liner didn't work for me for whatever reason, so I ended up doing this instead.
run this in another terminal, were xxxx is the process ID of the running dd process. the progress will report on the original terminal that you ran dd on
Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?
You must be signed in to comment.
commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.
Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.
» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10
Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):
Subscribe to the feed for:
pv /dev/urandom | dd of=file.img bs=4KB count=1234
This will display a progress bar for fixed-size input, or just a throughput speed for unlimited things like urandom.function ddp() { dd "$@" & pid=$! && while true; do kill -USR1 $pid && sleep 1 && clear; done ;}
watch -n1 "kill -USR1 $pid"
instead of the sleep and clear in a for loop.