Gnu/Linux ist flexibel ;-)

Kommentieren Mar 04 2010 .txt, .json, .md

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
}

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.