Pagina 1 di 1

Copia da shell, percentuale avanzamento

Inviato: gio 17 lug 2008, 19:06
da wakkokid
Salve,
Spesso mi trovo a copiare file da più di un giga e per mia natura preferisco farlo da console.
Il problema è che con il comando "cp" non ho (=non conosco) il modo di verificare l'avanzamento dell'operazione. Cercando su google ho trovato diversi script che creavano una sorta di barra di avanzamento... possibile che non ci sia un programma pulito pulito che mostri senza tanti "giri" attraverso awk/strace/ecc... l'avanzamento della copia? Non chiedo una progress bar con indicatore di velocità e "predizione" del tempo rimanente! Basta un semplice numeretto a due cifre che indichi la percentuale dell'operazione compiuta, tutti i tool grafici lo fanno, e anche i tool da console tipo mc, possibile che qui la shell sia più carente dei tool grafici? Non credo, dev'essere solo la mia ignoranza :oops:

Vi ringrazio.

Re: Copia da shell, percentuale avanzamento

Inviato: gio 17 lug 2008, 19:48
da aschenaz
Non sono semplici come li vorresti, ma ci sono questi script:
http://www.theiling.de/projects/bar.html
http://chris-lamb.co.uk/2008/01/24/can- ... like-wget/

Personalmente non li ho provati...

Re: Copia da shell, percentuale avanzamento

Inviato: gio 17 lug 2008, 20:33
da Mario Vanoni
wakkokid ha scritto: Spesso mi trovo a copiare file da più di un giga e per mia natura preferisco farlo da console.
Il problema è che con il comando "cp" non ho (=non conosco) il modo di verificare l'avanzamento dell'operazione.
Non chiedo una progress bar con indicatore di velocità e "predizione" del tempo rimanente!
Basta un semplice numeretto a due cifre che indichi la percentuale dell'operazione compiuta,
Per una percentuale devi prima sapere quanto vuoi copiare, quindi al minimo un wc -c *
con GB gia` perdi tempo, poi calcolare la progressione, altro tempo.

Non e` lo stile UNIX, ma se ti basta una progressione visibile:

cd /dir_di_partenza
ls [-a] | cpio -pmV /dir_di_arrivo
se servono anche le sotto directories
find | cpio -pdmV /dir_di_arrivo

la progressione consiste in punti (......................................)

io lo faccio ancora piu` verbose
cd /dir_di_partenza
find | cpio -pdmv /dir_di_arrivo

Re: Copia da shell, percentuale avanzamento

Inviato: gio 17 lug 2008, 23:41
da masalapianta
wakkokid ha scritto:Salve,
Spesso mi trovo a copiare file da più di un giga e per mia natura preferisco farlo da console.
Il problema è che con il comando "cp" non ho (=non conosco) il modo di verificare l'avanzamento dell'operazione. Cercando su google ho trovato diversi script che creavano una sorta di barra di avanzamento... possibile che non ci sia un programma pulito pulito che mostri senza tanti "giri" attraverso awk/strace/ecc... l'avanzamento della copia? Non chiedo una progress bar con indicatore di velocità e "predizione" del tempo rimanente! Basta un semplice numeretto a due cifre che indichi la percentuale dell'operazione compiuta, tutti i tool grafici lo fanno, e anche i tool da console tipo mc, possibile che qui la shell sia più carente dei tool grafici? Non credo, dev'essere solo la mia ignoranza :oops:

Vi ringrazio.
una cosa del genere?

Codice: Seleziona tutto

#!/bin/bash

if [ -z $2 ]; then
        echo "usage: $0 [file da copiare] [file dove copiarlo (ci vuole pure il nome del file non solo la directory di destinazione)]"
        exit 1
fi

from="$1"
to="$2"
cp $from $to &
sleep 0.5
sizefrom=`du -b $from|awk '{print $1}'`
upc=`echo "$sizefrom/100"|bc`
while [ "$sizefrom" != `du -b $to|awk '{print $1}'` ]; do
        tmpsize=`du -b $to|awk '{print $1}'`
        tmp=`echo "$tmpsize/$upc"|bc`
        echo -e "\r $tmp %  \c"
        sleep 0.5
done

Re: Copia da shell, percentuale avanzamento

Inviato: ven 18 lug 2008, 10:58
da wakkokid
Mario Vanoni ha scritto:
wakkokid ha scritto: Per una percentuale devi prima sapere quanto vuoi copiare, quindi al minimo un wc -c *
con GB gia` perdi tempo, poi calcolare la progressione, altro tempo.
Giusto... il motivo c'è, non ci avevo pensato.

Adesso provo un po' gli script che avevo trovato e quelli che mi avete gentilmente proposto.
Ringrazio tutti.

Re: Copia da shell, percentuale avanzamento

Inviato: ven 18 lug 2008, 19:43
da davide77
Per alcuni tipi di copia io di solito uso rsync, indica la progressione della copia e, in caso di errori, ti permette di riprendere dal punto di interruzione ( = non ricopia tutto quello che ha già copiato).

Unico svantaggio, di non poco conto, è l'utilizzo di cpu, molto alto (per mia esperienza un pc a più di 1GHz non da problemi) rispetto a cp, però è molto più flessibile di cp in alcune situazioni.