Одна из проблем консольных команд - неопределенность во время выполнения (а иногда и полная тишина) - запустил команду и ждёшь. А сколько ждать? Нам как внешнему наблюдателю ничего не показывают, но система конечно же всё знает и видит.
Визуализировать прогресс позволяет
pv.Сожмем бэкап
gzip backup.sql
Теперь то же самое, только через viewer
pv backup.sql | gzip > backup.sql.gz
1.42GiB 0:00:15 [98.3MiB/s] [===================>] 16% ETA 0:01:17
Другое дело. Распакуем обратно
pv backup.sql.gz | gzip -d > backup.sql
У вас, как и у меня, скорее всего нет под рукой бэкапов или каких-нибудь логов для экспериментов, сделаем перегонку данных из генератора в поглотитель и визуализируем этот процесс:
dd if=/dev/zero bs=1M count=500 | pv | gzip > /dev/null
/dev/zero нагенерировал 500Мб нулей и передал их в /dev/null
Проблема в том, что /dev/zero выплевывает нули на ходу и прекратит только по достижению счетчика - как таковых данных с фиксированным размером нет, поэтому прогрессию pv посчитать не может. Добавим ему эти сведения:
dd if=/dev/zero bs=1M count=500 | pv -s 500m | gzip > /dev/null
500+0 records in[ 176MiB/s] [==============> ] 72% ETA 0:00:00