Posso calcular a soma de verificação de um arquivo ao criá-lo?

Posso calcular a soma de verificação de um arquivo ao criá-lo?

Estou criando um tararquivo grande e gostaria de criar também a soma de verificação do arquivo. Eu poderia conseguir assim:

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

Mas o arquivo compactado é enorme e está em uma mídia lenta, então prefiro não ter que ler tudo novamente depois de escrevê-lo.

Posso construir um pipeline que fará o hash do arquivo enquanto ele é gravado? Pensei que talvez pudesse fazer isso com o teeutilitário, mas ele grava apenas em um arquivo, não na entrada padrão de outro comando.

Responder1

Respondendo à minha própria pergunta:

Sim, você pode usar a substituição do processo tee e bash:

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

informação relacionada