pv: Progress Bar for md5sum et al.


Tools that know they will take a long time often come with a built-in progress indicator, but there are other utilities on Linux that often leave the user frustratedly tapping their fingers, wondering how much longer they will have to wait.

Luckily, there is a nifty little tool called pv that will donate a progress bar to any program that can read from standard input or a pipe. pv probably stands for pipe viewer.

1. Simple example: figure out how long an md5sum will take:

pv eternal.avi |md5sum

will display something like

96.5MB 0:00:05 [25.3MB/s] [=======>                                    ]  9% ETA 0:00:48

Notes:

  • pv reads from file and prints to stdout.
  • md5sum reads from stdin.
  • pv outputs the progress bar to stderr so as not to interfere with the piped data. See the man page for ways to customize pv’s output.
  • since the bottleneck of such an operation is the media you’re reading from, not the CPU, there will be no noticeable overhead.

2. Complex example: add a progress bar to tar/bzip2 compression/decompression:

tar cf - mydir | pv -n -s $(du -sb mydir | awk ‘{print $1}’) | bzip2 >mydir.tar.bz2

Notes:

  • this example is adapted from the pv man page.
  • the -n switch makes pv output only percentage values.
  • no file is passed to pv, so it reads from stdin (piped to the output of tar).
  • on a system with good cache and enough memory, doing the extra du -s mydir shouldn’t hurt much, since tar will go through the entire directory anyway.

Now let’s decompress it:

pv mydir.tar.bz2 |tar xjf -

By now you realize how awesome this is.

3. Fun example: measure /dev/null throughput:

pv /dev/zero >/dev/null

is close to 3.3GB/s on my 3-year-old system.

Notes:

  • this is not a benchmark ™.
  • pv can’t know the size of its input in this case (infinity), so it obviously can’t display an ETA.

pv is a brilliant example of the UNIX philosophy: simple puzzle pieces combining to create useful results. A couple of last-word remarks:

  • There is apparently a very similar tool called cpipe.
  • There are, unfortunately, programs for which you will not be able to use pv. One example is dpkg, which apparently tries seeking in its input, thus failing to work with pipes.
  • Thanks to my boss for pointing me to this awesome tool.
Posted in Linux, Shell, Technology   Tagged: bzip, bzip2, compression, decompression, md5, md5 sum, md5sum, pipe, progress, progress bar, pv, tar, throughput, tool, trick, unzip, zip   

Sursa
2009-02-05 00:00:00



Comenteaza





Ultimele 25 posturi adăugate

09:19:26Ziua Vinului, la un sfert de secol —» Fine Wine
05:57:52O CARTE PENTRU COPII —» Leo Butnaru
12:27:54La Muzeul Național de Artă al Moldovei a fost inaugurată expoziția „ALB DUPĂ ALB”, semnată de Doina Mihăilescu 💫 —» Sandu GRECU
12:19:43Primul Sprint Kood Moldova s-a încheiat. Începe formarea unei noi generații de specialiști tech 💥 —» Sandu GRECU
06:12:55Orange de Bulboaca — printre cele mai bune vinuri ale lumii la Berliner Wine Trophy —» Fine Wine
05:46:36DIN POEZIA AVANGARDEI UCRAINENE —» Leo Butnaru
05:24:21O PROZĂ DIN SUD PUBLICATĂ ÎN NORD —» Leo Butnaru
14:55:35Festivalul Internațional al Teatrelor de Păpuși de la Zagreb —» Biblioteca de Arte 'Tudor Arghezi'
05:49:45A PUNE PE PICIOARE —» Leo Butnaru
04:26:43DIN REVISTA TINERILOR —» Leo Butnaru
05:45:23DOUĂ PROZE —» Leo Butnaru
04:44:42Premieră: Radacini a lansat primele vinuri DOP din Moldova —» Fine Wine
12:30:14Revelația din UFC, Pavel Andrușca nu a fost niciodată la o discotecă 💥🔥🚀 —» Sandu GRECU
04:58:46MEMORIILE LUI DUMNEZEU —» Leo Butnaru
05:05:17O NUVELETĂ SCRISĂ ÎN SUD ȘI PUBLICATĂ ÎN NORD —» Leo Butnaru
05:18:23CENZURA ȘI POEZIA —» Leo Butnaru
16:29:49Monica Trache: „…Ne place să spunem lucruri actuale…” —» Biblioteca de Arte 'Tudor Arghezi'
06:36:15ACUM JUMĂTATE DE SECOL —» Leo Butnaru
18:39:49Bookfest la Chișinău —» Biblioteca de Arte 'Tudor Arghezi'
18:39:49Bookfest la Chișinău —» Biblioteca de Arte 'Tudor Arghezi'
05:54:16RACURSIURI TRANSPRUTENE —» Leo Butnaru
05:30:29INGHIURI DE VEDERE —» Leo Butnaru
14:06:03💥💥💥 Marin Livadaru. Război cu Sheriff. Săgeți către Adlan, Pașa, Igor și Colea. Bani, afaceri și politică —» Sandu GRECU
06:55:27Două vinuri Gogu de neratat la Vin de Autor —» Fine Wine
05:57:18IDOLII ECRANELOR —» Leo Butnaru