Прогресс bar для консольных утилит в Unix/Linux

Прогресс bar для консольных утилит в Unix/Linux

Когда начал писать скрипты на bash и пользоваться консольными утилитами, мне потребовалось следить за выполнением задач, а именно, сколько же времени потребуется на ту или иную задачу. Не во всех утилитах есть прогресс бар. И в своей теме «Прогресс bar для консольных утилит в Unix/Linux» я расскажу про утилиту bar и как ее установить и использовать.

Bar — это небольшой скрипт который предназначен для использования для показа прогресс баров в консольных утилитах, а так же bash скриптов.

Прогресс bar для консольных утилит в Unix/Linux

Установить прогресс 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».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.