파이프를 통해 파일의 체크섬을 어떻게 확인할 수 있나요? 예를 들어 나는 다음과 같은 일을 하고 싶다.
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