Gnu/Linux ist flexibel ;-)

Kommentieren Mar 04 2010

 

Wie bekommt man unter Gnu/Linux für den cp Befehl eine Prozessanzeige ?

Nun ja man könnte ja den Befehl an sich neu schreiben, aber das ist einfach zu viel des Guten.

Was macht man dann ?
Nun ja man erstellt sich einen neuen Befehl bzw. Alias in Bash ! Mehr nicht !

#!/bin/sh

cp_p()

{

   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

}


“Can you get cp to give a progress bar like wget?”

Dazu braucht man keinen compiler, sources etc. sondern nur die hauseigenen Mittel die eh schon da sind. So einfach und flexibel kann Software sein.

Ok, es ist nicht die schnellste und beste Art dies zu machen, aber es ging einfach nur darum zu zeigen, dass dies gejt.

Performanter und besser ist pv

cp file1 /path/to/ | pv -pe


Und schon hat man seinen Prozessanzeige und ist wehsentlich Performanter.