progress bar для консольных утилит

Goganchic 15 июля 2010 в 12:24 22k
По долгу службы мне время от времени приходится копировать, архивировать, разархивировать и проводить другие стандартные действия с большими файлами. Консольные утилиты, типа cp, tar или cat — отлично справляются с поставленной перед ними задачей, но возникает одна маленькая проблема: предположим, что надо заархивировать SQL-дамп на 500 Мб, на среднем железе данная операция может выполняться 5 — 10 минут и при этом, стандартный tar не выводит никакой строки прогресса, т.е. консоль как бы подвисает и только открыв top в соседнем окне можно понять что что-то происходит. Я думаю, что будет намного удобнее, если в консоли появится полоска прогресса как в том же scp и тогда пользователь будет лучше осведомлен о том, как долго ему осталось ждать до завершения операции.

Спросив у Гугла я понял, что являюсь далеко не первым, кого обеспокоила эта проблема и хорошими людьми был написан интересный bash скрипт bar. Как он работает можно увидеть на картинке:



Скрипт выполнен в лучших традициях unix-way: он отлично делает единственную поставленную перед ним задачу — рисует полосу прогресса, а так же может использоваться в цепочках команд.

Скрипт работает в большинстве популярных систем, таких как Linux, Solaris, NetBSD, FreeBSD, OpenBSD и т.п. Скачать скрипт и узнать подробности его работы можно на странице проекта: http://www.theiling.de/projects/bar.html
Проголосовать:
+69
Сохранить: