Avoir une barre de progression avec la commande cp sous Linux

par Korben -

Sous Linux, ce qui est chiant quand on fait un “copier” (cp) en ligne de commande, c’est qu’on ne sait jamais où on en est…alors qu’avec Wget, on a une belle barre de progression qui donne l’avancement du téléchargement.Pour ceux que ça intéresse, voici le script qui va permettre d’avoir le même genre de barre de progression avec “cp”.. Il vous suffit de créer un fichier script avec ce qu’il y a ci-dessous dedans, de le nommer cp_p et de le copier dans /usr/bin

#!/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 } 

Ca donnera alors un truc comme ça lorsque vous copierez des fichiers en ligne de commande :

% cp_p /mnt/files/ubuntu.iso.iso /home/korben 70% [=========================================> ] 

Pratique non ?