Estou criando um tar
arquivo 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 tee
utilitá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