Teer mit Fortschritt aber ohne Kompression

710
puk

Es gibt viele Antworten, wie eine tar.gzDatei mit Fortschrittsaktualisierungen erstellt wird (z. B. diese Antwort, unten kopiert).

tar cf - /folder-with-big-files -P | pv -s $(du -sb /folder-with-big-files | awk '') | gzip > big-files.tar.gz 

Aber wie sehe ich den Fortschritt, wenn ich Dateien ohne Komprimierung so verarbeite?

tar -cvf output.tar folder/to/tar 
1

2 Antworten auf die Frage

3
davidgo

Während die akzeptierte Lösung funktioniert, ist es nur ein bisschen Prozessmissbrauch. Es gibt eine einfachere und elegantere / richtige Lösung -

tar -c /folder | pv -s $(du -sb /folder-with-big-files | awk '') > bigfiles.tar 

tar steht für Tape ARchive - und ist für Streams gedacht. Das "f" in "cf" weist tar an, eine Datei speziell zu erstellen - stattdessen dies zu tun und ein "-" anzugeben, um stdout als diese Datei zu verwenden.

Danke für das Teilen, Davidgo. Beachten Sie, dass die beiden Ordnerpfade (die aktuell als / folder und / folder-with-big-files angezeigt werden) übereinstimmen müssen, wie in der Antwort von @Kevin Rockwell. Miles Wolbe vor 5 Jahren 0
2
Kevin Rockwell

Anstatt die Ausgabe über gzip zu übergeben, geben Sie die Ausgabe in eine Datei aus: tar cf - /folder-with-big-files -P | pv -s $(du -sb /folder-with-big-files | awk '') > big-files.tar