&1 \ | awk '{ count += $NF if (count % 10 == […]" /> NF.sec – Bezpieczeństwo systemu Linux - Pasek postępu przy kopiowaniu cp
NFsec Logo

Pasek postępu przy kopiowaniu cp

05/08/2009 w Hacks & Scripts Brak komentarzy.  (artykuł nr 119, ilość słów: 310)

P

rzedstawiony skrypt jest wynalazkiem Chrisa Lamba – powoduje on dodanie prostego paska postępu (takiego jaki jest używany w programie wget) w komendzie cp używanej do kopiowania plików w Linuksie:

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

W praktyce wygląda to tak:

% cp_p slackware.iso /dev/null
12% [========>                    ]

Skrypt wystarczy zapisać do pliku cp_p i umieścić w katalogu /bin lub /usr/bin.

Więcej informacji: http://chris-lamb.co.uk

Kategorie K a t e g o r i e : Hacks & Scripts

Tagi T a g i : , ,

Komentowanie tego wpisu jest zablokowane.