Estoy creando un tar
archivo 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 tee
utilidad, 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