Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/08/2008, à 05:43

nicolas66

Copie avec barre de progression

Bonjour tlm,

Récemment je suis tombé par hasard sur un script bash de copie avec une barre de progression. Le script est basé sur dialog. Ca peut être utile pour la copie de gros fichiers qui demandent un temps de transfert considérable. Bref, voilà le code :

#!/bin/bash
if [ "$1" != "" -a "$2" != "" ]; then
        if [ -f $1 ]; then
                src=$1
                size=`ls -al $src | awk '{print int(($5/512)+(($5%512)?1:0))}'`
		src_name=`find $src -printf %f`
        else
                echo "Fichier source introuvable" >2
                exit 1
        fi
        if [ -f $2 ]; then
                dest=$2
        else
                if [ -d $2 ]; then
                        dest=$2/$src_name
                else
                        dest=$2
                        touch $dest 2> /dev/null
                        if [ $? != 0 ]; then
                                echo "Destination invalide" >&2
                                exit 1
                        fi
                fi
        fi
        echo $src $dest $size
        chunk_size=$(($size/100))
        if [ $chunk_size -lt 1 ]; then
                cp $src $dest
                exit 0
        fi
        copied=0
        (while [ $copied -lt $size ]; do
                dd if=$src of=$dest bs=512 count=$chunk_size skip=$copied seek=$copied >/dev/null 2>&1
                copied=$(($copied+$chunk_size))
		echo $(((100*$copied)/$size))
        done) | dialog --backtitle "Widgets de bash dialog" --title " Copie en cours " --gauge "$src\n> $dest " 10 60 0
else
        echo "usage: $0 source destination"
fi

exit 0

screen_copy.png

Quand j'aurai un peu de temps, je généraliserais la copie à un ensemble de fichiers. Voilà smile

Dernière modification par nicolas66 (Le 12/08/2008, à 05:55)


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#2 Le 12/08/2008, à 15:44

tekman54000

Re : Copie avec barre de progression

sinon tu as ca : http://forum.ubuntu-fr.org/viewtopic.php?id=135404 qui prend en charge les commande cp et mv directement smile


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#3 Le 12/08/2008, à 16:14

nicolas66

Re : Copie avec barre de progression

Ah sympa le patch smile


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne