ファイルを作成するときにそのチェックサムを計算できますか?

ファイルを作成するときにそのチェックサムを計算できますか?

大きなtarアーカイブを作成しており、アーカイブのチェックサムも作成したいと考えています。次のようにして実現できます。

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

しかし、アーカイブ ファイルは大きく、低速メディア上にあるため、書き出した後にすべてを再度読み込む必要がないようにしたいと考えています。

ファイルに書き込むときにハッシュするパイプラインを構築できますか? ユーティリティを使用してこれを行うことができると思いましたがtee、これはファイルに書き込むだけで、別のコマンドの標準入力には書き込まれません。

答え1

私自身の質問に答えます:

はい、tee と bash のプロセス置換を使用できます。

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

関連情報