lundi 22 septembre 2008

Version graphique de CP

Salut, voilà juste un petit script pour faires des copies avec cp tout en voyant la progression sur une interface graphique.

#!/bin/sh
set -e
( strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
| awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf percent
printf "\n"
}
}
END { print "" }' total_size=$(stat -c '%s' "${1}") count=0 ) \
| zenity --progress --auto-close --title="Copie de fichiers..." --width=600 --text="Copy of file ${1} ($(file -b ${1}), $(du -h ${1} | awk '{print $1}')) to ${2} ($(file -b ${2}))" 2>&1

Pour l'utiliser, enregistrer ce code dans un fichier

Ensuite, avant de l'utiliser, veillez à le rendre executable (chmod +x mon_script).

Et puis ensuite, faire ./mon_script source destination, pour faire la copie.

Ca fonctionne de la même manière que la commande "cp", mais en version graphique, et qui affiche un pourcentage, la taille, et le type des fichiers. Par exemple en faisant :

./cp_p document.pdf copie_document.png, je vois :

2 commentaires:

30DDC a dit…

Super, ton truc graphique.

Mais pour les copies <3 secondes, c'est subliminal !

(J'avais fait l'essai avec un fichier *.ods de 340 ko, y'a même pas le temps de voir le pop-up ;-)

Anonyme a dit…

Merci à toi 30DDC

pistache qui a la flemme de s'authentifier

 
Pistaaaaaaaaaaaaaaache