我正在寻找一种方法来计算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,但我对语言很灵活。