Pasek postępu przy kopiowaniu cp
Napisał: Patryk Krawaczyński
05/08/2009 w Hacks & Scripts Brak komentarzy. (artykuł nr 119, ilość słów: 310)
P
rzedstawiony skrypt jest wynalazkiem Chrisa Lamba – powoduje on dodanie prostego paska postępu (takiego jaki jest używany w programie wget) w komendzie cp używanej do kopiowania plików w Linuksie:
#!/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
}
W praktyce wygląda to tak:
% cp_p slackware.iso /dev/null 12% [========> ]
Skrypt wystarczy zapisać do pliku cp_p i umieścić w katalogu /bin lub /usr/bin.
Więcej informacji: http://chris-lamb.co.uk

