私は、tarファイルに含まれるすべてのファイルに対してsha-256の値を計算する方法を探しています。問題は、タールが200GB以上のファイルを含む300GBであることです。tarファイル内のすべてのファイルのshasumを計算する方法
これをbashで行うには、いくつかの異なる方法があります。
を抽出し、それが動作する300ギガバイトのスペースのスペースを必要とし、それを合計
を計算する前にデータをコピーする必要があるため遅いので、その後find
tmp=`mktmp --directory extract_XXX`
cd "$tmp"
tar -xf "$tarfile"
find "$tmp" -type f -exec shasum -ba 256 {} +
cd ..
rm -rf "$tmp"
この方法が悪いを使用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ですが、私は言語について柔軟です。