大きな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