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

12:54:55PRINTRE LAUREAȚI —» Leo Butnaru
07:22:51Grand Gold pentru The Governor Saperavi Forte —» Fine Wine
13:52:30Carolina Bogatiuc: „Republica Moldova lucrează deja cu UE pe toate grupurile de capitole de negociere” ✨ —» Sandu GRECU
11:43:14Ambasada Chinei nu are loc de Falun Dafa?! —» Curaj.TV | Media alternativă
10:35:26Equinox lansează două vinuri noi —» Fine Wine
15:33:45Cine a trăit aici înainte de daci? Ce dezvăluie ADN-ul —» Curaj.TV | Media alternativă
12:39:32Mă simt un mesager al culturii moldovenești… —» Biblioteca de Arte 'Tudor Arghezi'
09:16:54Federația Moldovenească de Fotbal a creat Fondul destinat susținerii Centrelor de Pregătire a Copiilor și Juniorilor din Republica Moldova 💲 —» Sandu GRECU
08:33:35Patru stiluri, o confirmare: Radacini ia aur la Mondial de Bruxelles —» Fine Wine
05:50:28DESCHIS MIRĂRII —» Leo Butnaru
16:32:18„O afacere europeană înseamnă să fii mereu alături de oameni, prin fapte reale” – Cristina Aramă, Manager Afaceri Corporative, Kaufland Moldova 💫 —» Sandu GRECU
08:52:29Agenția de Investiții lansează un nou apel pentru ediția 2026-2027 a Programului BRIDGE Export: Granturi pentru consolidarea prezenței produselor moldovenești pe piețele externe 🌉 —» Sandu GRECU
08:43:26Republica Moldova lansează platforma oficială www.moldova.md, un nou instrument de prezentare a țării 💫 —» Sandu GRECU
18:24:00Nicolae Usatîi: Mi s-a propus să-l kidănesc pe tata. Secretul Petrocub. Schemele din fotbal 💥💥💥 —» Sandu GRECU
11:33:39Achiziții noi, 2026 —» Biblioteca de Arte 'Tudor Arghezi'
07:13:13DIN REVISTA TINERILOR —» Leo Butnaru
14:49:09Proiect inedit în vinuri: Calendar —» Fine Wine
19:51:38Datele a 50.000 de cetățeni ai Republicii Moldova pe Dark Web —» Curaj.TV | Media alternativă
19:51:38Datele a 50.000 de cetățeni ai Republicii Moldova pe Dark Web —» Curaj.TV | Media alternativă
04:24:49patriarchy and capitalism —» turn up the silence
06:21:22Luna mai a adus mai multe solicitări pentru bibliotecare —» BPR Ungheni's Blog
21:35:18Aceeași scenă, alt unghi —» APort | "Pentru un român care știe citi, cel mai greu lucru e să nu scrie." I.L. Carag
05:31:28JURNALUL LUI ORFEU —» Leo Butnaru
17:07:46De la Polul Nord la Polul Sud: o aventură de 73.000 de kilometri, transpusă într-o carte lansată la Ploiești —» Curaj.TV | Media alternativă
17:07:46De la Polul Nord la Polul Sud: o aventură de 73.000 de kilometri, transpusă într-o carte lansată la Ploiești —» Curaj.TV | Media alternativă