Отвечая на мой собственный вопрос:
Да, вы можете использовать замену tee и bash:
tar cfz - files | tee >(sha256sum) | cat > archive.tar.gz
Я создаю большой tar
архив, и я хотел бы также создать контрольную сумму архива. Я мог бы достичь этого так:
$ tar cfz archive.tar.gz files $ sha256sum archive.tar.gz > archive.tar.gz.sha256sum
Но файл архива огромен и на медленном носителе, поэтому я бы предпочел, чтобы после его записи не приходилось читать все заново.
Могу ли я построить конвейер, который будет хэшировать файл при его записи? Я подумал, что, возможно, я смогу сделать это с помощью tee
утилиты, но она записывает только в файл, а не на стандартный ввод другой команды.
Отвечая на мой собственный вопрос:
Да, вы можете использовать замену tee и bash:
tar cfz - files | tee >(sha256sum) | cat > archive.tar.gz