Gefunden dieses Skript durch googeln, es hat einen Fortschrittsbalken für cp, das Problem ist, dass es Tonnen von Zeilen, wie diese erstellt:
0% [=>
0% [=>
0% [=>
0% [=>
0% [=>
0% [=>
0% [=>
0% [=>
0% [=>
0% [=>
0% [=>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
1% [==>
Hier ist der Code des Skripts:
#!/bin/bash
strace -q -ewrite cp -- `printf '%q ' $@` 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
Und noch etwas: Die Schlange mit den ====== ist zu lang. Wenn man sich den 90ern nähert, gehen die ==== auf die nächste Zeile über. Wie kann ich das so bearbeiten, dass es 75 Zeilen drucken würde, da mein Standardterminal 80 Zeilen breit ist.
Edit: Ok, mir ist klar, dass das nicht funktioniert, wenn eine Datei ein Leerzeichen enthält. [Es tut einfach nichts und beendet sich direkt nachdem ich den Befehl eingegeben habe.] Irgendwelche Ideen?
Vielen Dank :)