cv/coreutils viewer@github supports all basic utilities in coreutils package. It is written in C and shows the progress as percentage. Works by scanning /proc for commands that it supports, checks directories fd and fdinfo for opened files and seek positions and finally reports the progress for the largest file.
$ apt-get|yum|yaourt cv '-m,--monitor' loop while monitored processes are still running '-w,--wait' estimate I/O throughput and ETA '-c,--command command' monitor only this command # see all current and upcoming coreutils commands $ watch cv -q # see downloads progress $ watch cv -wc firefox # launch and monitor any heavy command using '$!' $ cp bigfile newfile & cv -mp $!
$ apt-get|yum|pacman install pv command1 | pv | command2 pv input.file | command1 | pv > output.file # display options '-p,--progress/-t,--timer/-e,--eta/-b,--byte' show progress/timer/ETA/bytes # output modifiers '-N,--name NAME' prefix the output information '-c,--cursor' use cursor positioning escape sequences '-l,--line-mode' instead of counting bytes, count lines '-s,--size SIZE' assume the total amount of data to be transferred is SIZE # data transfer modifiers '-L,--rate-limit RATE' limite transfer rate by bytes/sec '-B,--buffer-size BYTES' # watch how quickly a file is transferred using nc $ pv file | nc -w 1 host 3000 # see progress of both pipes $ pv -cN rawlogfile file.log | gzip | pv -cN gziplogfile > file.log.gz # with ncurses's dialog $ (pv -n backup.tar.gz | tar xzf - -C path/to/data ) 2>&1 | dialog --gauge "Running tar, please wait..." 10 70 0 # rsync and pv $ rsync options source dest | pv -lpes Number-Of-Files