30
sty
08

Pasek postępu dla /bin/cp

Dla nieświadomych podstawowych komend linuksowych: cp umożliwia kopiowanie plikow między dwoma lokacjami.
W orginale jest on pozbawiony jakiegokolwiek sygnalizatora postępu, jest jednak możliwość aby dodać do niego pasek postępu bardzo podobny do tego znanego z wget

Uruchamiamy /bin/sh i wklejamy poniższy kod

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
}

Teraz pliki kopiujemy przy pomocy cp_p [skąd] [do_kąd]


1 Odpowiedź do “Pasek postępu dla /bin/cp”


  1. styczeń 30, 2008 o 3:51 pm

    Ciekawe, ciekawe… Nawet wiem skąd ów skrypt pochodzi :)


Napisz odpowiedź




Kim jestem

To ja

Nazywam się Tomek, jednak w internecie przedstawiam się jako sunlifter, Jestem uczniem liceum i uczę się w klasie o profilu inf-mat-ang. Interesuję się programowaniem oraz grafiką, i temu mam zamiar poświęcić się w przyszłośći. Moim drugorzędnym hobby jest fotografia, moje fotografie można oglądać na Digart.pl Gorąco zapraszam do komentowania postów na tym blogu :)

Profil użytkownika Tomasz Frankowski
 używam Ubuntu