パイプを介してファイルのチェックサムをどのように確認できますか?たとえば、私は次のことをしたいと思います。
curl -sL https://example.org/maybe-safe-maybe-not.tar.gz | md5sum 8da7904f495f682c39fa505b6404f9d1 | tar xvzC /usr/local/bin
同様のプログラムは、引数として提供されたハッシュが一致しない場合はパイプラインを中断し、一致した場合はmd5sum
ファイル出力を渡します。
少なくとも私がテストしたバージョンを受け取っていることを確信できるので、これは私のスクリプトをより安全にするだろうと思います。
いくつかのトリックを使用して合計を確認できます。
cat yarn.lock | md5sum -c <(echo 8da7904f495f682c39fa505b6404f9d1 -) --status
yarn.lock
しかし、後で出力を渡す方法がわかりません。
答え1
ファイル名でダウンロードしたmaybe-safe-maybe-not.tar.gz
後:
expected_digest='8da7904f495f682c39fa505b6404f9d1'
if [ "${expected_digest} -" = "$(md5sum <maybe-safe-maybe-not.tar.gz)" ]; then
tar xvzf maybe-safe-maybe-not.tar.gz -C /usr/local/bin
else
echo 'ERROR: ...'
exit 1
fi