我可以在建立文件時計算文件的校驗和嗎?

我可以在建立文件時計算文件的校驗和嗎?

我正在建立一個大型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

相關內容