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

06:38:19E mult sau puțin o casă nouă de peste 600 de mii de Euro pentru ministrul economiei? —» un alt blog
09:05:38DIN MAREA POEZIE A LUMII —» Leo Butnaru
08:46:34DESPRE ÎNCEPUTURILE SCRIITORICEȘTI —» Leo Butnaru
05:51:27Horizon Capital (Purcari) și prietenii lor lituanieni vor să vândă MAIB. Îi ajută Gavriliță și #năPASta —» un alt blog
04:59:26În loc de teren de sport multifuncțional – Parcare pentru Medpark! Îi e în cot guvernului de sănătatea fizică… —» un alt blog
20:08:21Alegerile din Italia, explicate —» APort | "Pentru un român care știe citi, cel mai greu lucru e să nu scrie." I.L. Carag
19:31:54CFR la 150 de ani se laudă cu vechituri —» Curaj.TV | Media alternativă
12:17:43Ce face ”specialistul” pe delapidări Vitalie Perciun printre consultanții Agenției Proprietății Publice? —» un alt blog
12:10:34Câți bani din conturile lui Spînu sunt, de fapt, ai lui Vlad Filat…? —» un alt blog
10:27:43Proiectul Instituţional ,,Memori@ Locală” —» Biblioteca Publică or.Rîşcani
18:42:38Protest la București pentru drepturile animalelor #exclusiv —» Curaj.TV | Media alternativă
11:43:22Bullet Train. Sună mai bine ca Trenul Asasinilor. —» APort | "Pentru un român care știe citi, cel mai greu lucru e să nu scrie." I.L. Carag
09:31:03casatoria fictivă ca strategie de supraviețuire —» blog cultural
08:27:16despre poliția moldovenească doar de rău —» blog cultural
08:25:53Andrei și Ilinca – Plouă (cover Holy Molly x Tata Vlad) —» Andrei Albu - omul alb cu gînduri negre
07:34:15despre vot în bătaia puștii —» blog cultural
23:18:39Top Gun: Maverick —» APort | "Pentru un român care știe citi, cel mai greu lucru e să nu scrie." I.L. Carag
15:38:28Bio verzii —» APort | "Pentru un român care știe citi, cel mai greu lucru e să nu scrie." I.L. Carag
13:04:11„Copiii de pe Volga” de Guzel Iahina —» Sunt MAMĂ!
11:49:57Primarul Ciucu a venit la protestul din Prelungirea Ghencea —» Curaj.TV | Media alternativă
10:42:32Am pledat împotriva intimidării aleșilor locali —» Curaj.TV | Media alternativă
10:28:09Vrem lărgirea și civilizarea prelungirii —» Curaj.TV | Media alternativă
19:24:05Cică a vorbit cu mai mulți membri de Guvern la Cahul —» Curaj.TV | Media alternativă
18:40:52Poveste origami de la o copilă refugiată (ru) —» Curaj.TV | Media alternativă
17:59:37Popă cu copii în portbagaj la Voluntarii Bucureștilor —» Curaj.TV | Media alternativă