Sorry, aber das ist nicht möglich. Aus der Datei bar
selbst:
Synopsis: 'bar' works just like 'cat', but shows a progress bar in ASCII art on stderr. The script's main function is meant to be usable in any Bourne shell to be suitable for install scripts without the need for any additional tool.
Das Problem ist, dass zum Anzeigen der Fortschrittsleiste bar
zuerst die Dateigröße bekannt sein muss.
Für das Extrahieren eines Archivs ist das kein Problem: Wenn backup.tar
es 100 MiB
groß ist und 50 MiB
bisher verarbeitet wurde, sind wir bei 50 %
.
Zum Erstellen eines Archivs wird jedoch bar
gelesen stdin
, was für alle praktischen Zwecke unendlich ist. Wie die Dokumentation sagt:
Unendliche Streams sind nicht schön: Der Balken wird nur bei 0% und bei 100% angezeigt. [...]
Die einzige Möglichkeit, Fortschrittsbalken für Sicherungszwecke anzuzeigen (außer das Erstellen einer benutzerdefinierten Version von tar mit Balken ) ist:
Berechnen Sie die angesammelte Größe der Dateien
/media/data
.Erstellen Sie
backup.tar
die Dateien einzeln und fügen Sie sie/media/data
an.Berechnen Sie nach jeder Datei den aktuellen Prozentsatz und zeigen Sie ihn an.
gzip
backup.tar
(Sie können verwendentar
für diese).
Beispiel:
TOTAL=$(du -b /media/data | grep -oP "^\d+") CURRENT=0 echo "Archiving:" IFS=" " for FILE in $(find /media/data -type f); do tar rf backup.tar $FILE CURRENT=$(($CURRENT+$(du -b $FILE | grep -oP "^\d+"))) echo -en "\r"$((100*($CURRENT-1)/$TOTAL+1))"%" done echo echo "Compressing:" bar backup.tar | gzip > backup.tar.gz rm backup.tar
Vorsicht:
- Dies wird Ihren Sicherungsvorgang wahrscheinlich verlangsamen.
- Dateinamen dürfen keine Zeilenvorschubzeichen enthalten.