Kann ich die Prüfsumme einer Datei beim Erstellen berechnen?

Kann ich die Prüfsumme einer Datei beim Erstellen berechnen?

Ich erstelle ein großes tarArchiv und möchte auch die Prüfsumme des Archivs erstellen. Das könnte ich so erreichen:

$ tar cfz archive.tar.gz files
$ sha256sum archive.tar.gz > archive.tar.gz.sha256sum

Da die Archivdatei jedoch riesig ist und sich auf einem langsamen Medium befindet, möchte ich sie nach dem Ausschreiben nicht noch einmal vollständig einlesen müssen.

Kann ich eine Pipeline erstellen, die die Datei beim Schreiben hasht? Ich dachte, ich könnte das vielleicht mit dem teeDienstprogramm tun, aber das schreibt nur in eine Datei, nicht in die Standardeingabe eines anderen Befehls.

Antwort1

Beantwortung meiner eigenen Frage:

Ja, Sie können die Prozesssubstitution „tee“ und „bash“ verwenden:

tar cfz - files | tee >(sha256sum) | cat > archive.tar.gz

verwandte Informationen