
Прогресс bar для консольных утилит в Unix/Linux
Когда начал писать скрипты на bash и пользоваться консольными утилитами, мне потребовалось следить за выполнением задач, а именно, сколько же времени потребуется на ту или иную задачу. Не во всех утилитах есть прогресс бар. И в своей теме «Прогресс bar для консольных утилит в Unix/Linux» я расскажу про утилиту bar и как ее установить и использовать.
Bar — это небольшой скрипт который предназначен для использования для показа прогресс баров в консольных утилитах, а так же bash скриптов.
Установить прогресс bar для консольных утилит в Unix/Linux
Чтобы скачать ее, используйте:
# cd /usr/local/src && wget http://www.theiling.de/downloads/bar-1.4-src.tar.bz2
Распакуем:
# tar xvjf bar-1.4-src.tar.bz2 && cd bar-*
И скопируем утилиту в нужное место для дальнейшего использования:
# cp bar /usr/bin/
Примеры использования программы bar.
Приведу несколько наглядных примеров работы данной утилиты.
—Склеивание файлов.
# bar file1 file2 file2 > file3
Аналог утилиты:
cat file1 file2 file2 > file3
—Копирование файлов.
Аналог утилиты:
cp infile outfile
или с помощью bar:
bar -o outfile infile
—Скопировать несколько файлов в другой каталог (и показать прогресс бар).
Аналог утилиты:
cp file1 file2 file2 outdir/
или с помощью bar:
bar -c 'cat > outdir/${bar_file}' file1 file2 file3
—Распаковать каждый файл по отдельности, но показать общий процесс бар.
for i in *.tar.gz; do tar xzpf $i; done
или
bar -c 'tar xzpf -' *.tar.gz
—Создать список файлов.
Например:
(for file in erwin-2.0.274 bar-1.0-src linux-2.4.21 do echo ${file}: tar tzvpf ${file}.tar.gz done) > package-list.txt
С прогресс-баром:
bar -c 'echo ${bar_file}: ; tar tzvpf -' \ -e .tar.gz \ erwin-2.0.274 \ bar-1.0-src \ linux-2.4.21 \ > package-list.txt
Опции для утилиты bar
http://www.theiling.de/projects/bar.html
# bar -h
PS: Есть лучшее решение, но об этом в следующей статье.
На этом, у меня все, я завершаю свою тему»Прогресс bar для консольных утилит в Unix/Linux».