Прогресс 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».