파이프라인을 통해 해시 합계를 계산하고 일치하는 항목이 없으면 중단합니다.

파이프라인을 통해 해시 합계를 계산하고 일치하는 항목이 없으면 중단합니다.

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

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

관련 정보