Индикатор выполнения фиксированной длины, число файлов или байтов или, что еще лучше, таймер, показывающий приблизительное оставшееся время, было бы идеальным.
zip
Стандартное поведение, по-видимому, заключается в печати строки для каждого обработанного файла, но я не хочу, чтобы эта информационная перегрузка была связана с сжатием тысяч файлов. Я хочу предположить, сколько времени это займет.
Я попробовал опцию -q
( --quiet
) в сочетании с -dg
( --display-globaldots
), но это просто затопляет стандартный вывод несколькими строками точек и не дает никаких полезных указаний.
Я также попробовал, -qdgds 10m
как упоминалось в справочной странице, но получил тот же результат.
Затем я попытался -db
( --display-bytes
) и -dc
( --display-counts
), но, похоже, не существует глобального параметра, поэтому он снова печатает его для каждого имени файла.
Наконец, я попробовал это вместе с -q
лайком -qdbdc
, но это ничего не дает.
Как ни странно, я нашел страницу man на сайте info-zip, в которой упоминается опция -de
( --display-est-to-go
), которая должна «отображать приблизительное время завершения операции архивирования».
Это похоже на то, что я хочу, но проблема в том, что моя версия zip
не имеет этой функции. Я использую Ubuntu 14.04.1 64bit, bash-4.3.30 (1) и zip-3.00. Согласно Википедии, это последний стабильный релиз zip.
На странице info-zip sourceforge есть неизданные бета-версии, но я бы не стал доверять свои данные бета-версии.
pv /path/to/file | gzip > /path/to/file.gz
tee
. Перед запуском zip, сделайте общее количество файлов (с помощьюls
илиfind -type f
) и, пока он архивирует, прочитайте файл журнала на количество строк обработанных файлов, которые у него уже есть (с помощьюgrep
для просмотра правильных строк иwc -l
для строк считать), поэтому ваша информация высокого уровня будет отображать что-то вроде «234/76438 обработанных файлов»;