Pipe Viewer (pv)
Narzędzie konsolowe pv (Pipe Viewer) może zostać dodane pomiędzy dwa procesy w celu wizualizacji przepływu danych. Wszystko co pv otrzymuje na standardowy input (stdin) zostaje przekazane na standardowy output (stout). Sam postęp przekazywany jest do standardowego error (stderr).
W większości dystrybucji narzędzie to nie jest obecne w standardowej instalacji. W Debianie / Ubuntu może ono zostać bardzo łatwo doinstalowane poprzez apt-get install pv
.
Następujące przykłady ilustrują jego zastosowanie.
Postęp podczas rozpakowywania z bzip2
Ten przykład rozpakowuje jądro Linuksa w bieżącym katalogu, które jest obecne jako skompresowane w bzip2 archiwum tar.
$ pv linux-3.1.5.tar.bz2 | bzip2 -d | tar x 23.6MB 0:00:08 [3.12MB/s] [=========> ] 30% ETA 0:00:18
Postęp podczas pakowania z gzip
Następująca komenda pakuje katalog home z gzip do archiwum tar.
$ tar cf - /home/ | pv | gzip > home.tar.gz tar: Removing leading `/' from member names 52.3MB 0:00:02 [24.8MB/s] [ <=>
Tworzenie obrazu ISO z wskaźnikiem postępu
Następujący przykład tworzy obraz ISO płyty CD i pokazuje przy tym postęp.
dd if=/dev/cdrom | pv --size 700M | dd of=test.iso 436MB 0:01:10 [7.6MB/s] [============================================> ] 62% ETA 0:00:56
Podobny efekt może zostać również osiągnięty przez specjalny kill Signal (vide Tworzenie obrazu ISO plyty CD lub DVD pod Linuksem ).
Odczyt z /dev/null
To polecenie pokazuje jak szybko komputer może czytać z /dev/null.
pv /dev/zero > /dev/null 40GB 0:00:04 [ 10GB/s] [ <=> ]
Kolejny złożony przykład jest przeprowadzony w manpage z ironicznym komentarzem:
Frequent use of this third form is not recommended as it may cause the programmer to overheat.
(tar cf - . \ | pv -n -s $(du -sb . | awk '{print $1}') \ | gzip -9 > out.tgz) 2>&1 \ | dialog --gauge 'Progress' 7 70