我正在尋找一種方法來計算tar文件中包含的每個文件的sha-256值。問題是焦油是300GB和超過200,000包含的文件。如何計算tar文件中每個文件的shasum
這將是可能的bash幾種不同的方式做到這一點。
提取物,然後用find
tmp=`mktmp --directory extract_XXX`
cd "$tmp"
tar -xf "$tarfile"
find "$tmp" -type f -exec shasum -ba 256 {} +
cd ..
rm -rf "$tmp"
這種方法是不好的,因爲它需要300GB空間的工作空間,是緩慢的,因爲它具有計算總和
之前將數據複製列出tar文件並計算個人總和
tar -tf "$tarfile" awk '/\/$/ {next} {print $0}' | while read file ; do
sum=`tar -xOf "$tarfile" "$file" | shasum -ba 256`
echo "${sum%-}${file}"
done
這需要較少的磁盤空間,但要慢得多
我如何在tar文件中的單次做到這一點沒有它解壓到一個臨時目錄?
我已將此標記爲bash和python ...當前代碼是bash,但我對語言很靈活。