¿Puedo calcular la suma de comprobación de un archivo mientras lo creo?

¿Puedo calcular la suma de comprobación de un archivo mientras lo creo?

Estoy creando un tararchivo grande y también me gustaría crear la suma de verificación del archivo. Podría lograrlo así:

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

Pero el archivo es enorme y está en un medio lento, por lo que preferiría no tener que leerlo todo nuevamente después de escribirlo.

¿Puedo crear una canalización que haga un hash del archivo a medida que lo escribe? Pensé que tal vez podría hacer esto con la teeutilidad, pero eso solo escribe en un archivo, no en la entrada estándar de otro comando.

Respuesta1

Respondiendo a mi propia pregunta:

Sí, puedes usar la sustitución de procesos tee y bash:

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

información relacionada