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