Можно ли рассчитать контрольную сумму файла при его создании?

Я создаю большой 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
Другие вопросы по тегам