Linux: копируем красиво (с прогресс баром)

Все, кто хоть раз использовал wget, видели progress bar скачивания файла. Можно ли что-то подобное сделать и с командой cp?

Легко, как два байта переслать:


#!/bin/sh
cp_p()
{
set -e
strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
| awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf "%3d%% [", percent
for (i=0;i<=percent;i++)
printf "="
printf ">"
for (i=percent;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
}

результат работы выглядит так:


cp_p /install/suse-10.3.iso /mnt
75% [===========================================> ]

Бесполезно, но… красиво!

З.Ы. Придумал не я, честно подглядел вот здесь.