Ідеальною буде смуга ходу фіксованої довжини, кількість файлів чи байтів, а ще краще таймер, що показує, що очікується час, що залишився.
zip
Стандартною поведінкою, здається, є друк рядка для кожного обробленого файлу, але я не хочу, щоб ця інформація перевантажувалася, коли я копіюю тисячі файлів. Я хочу здогадатися, скільки часу це займе.
Я спробував параметр -q
( --quiet
) у поєднанні з -dg
( --display-globaldots
), але це просто затоплює stdout декількома лініями крапок і не дає корисної вказівки.
Я також спробував, -qdgds 10m
як згадувалося на сторінці man, але отримав такий же результат.
Потім я спробував -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";