"sha256sum"을 사용한 SHA256 체크섬 확인이 Debian에서는 실패하고 Ubuntu에서는 작동하는 이유는 무엇입니까?

"sha256sum"을 사용한 SHA256 체크섬 확인이 Debian에서는 실패하고 Ubuntu에서는 작동하는 이유는 무엇입니까?

Ubuntu 14.04에서 sha256sum효과는 coreutils예상한 대로입니다.

echo 879dd0d7637876be4796f7e6f194a111d21088be85cfe717fc97e2e7f05e79d2 /tmp/myfile | sha256sum -c
/tmp/myfile: OK

그러나 Debian Wheezy에서 똑같은 파일을 사용하여 똑같은 명령을 실행하면 실패합니다.

sha256sum: standard input: no properly formatted SHA256 checksum lines found

나는 그것을 이해하지 못한다. Debian의 쉘 스크립트에서 체크섬을 안정적으로 확인하는 방법은 무엇입니까?


우분투 14.04:

⟫ sha256sum --version
sha256sum (GNU coreutils) 8.21

천명음에 관해:

$ sha256sum --version
sha256sum (GNU coreutils) 8.13

두 운영 체제의 맨페이지에는 다음이 표시됩니다.

SYNOPSIS
       sha256sum [OPTION]... [FILE]...

DESCRIPTION
       Print or check SHA256 (256-bit) checksums.  With no FILE,
       or when FILE is -, read standard input.

[...]

       -c, --check
              read SHA256 sums from the FILEs and check them

답변1

간격에 신경을 씁니다. 실행하는 경우:

sha256sum /dev/null

당신은 얻는다

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  /dev/null

(두 칸). 이런 식으로 사용 하면 echo단어 사이에 공백만 있게 됩니다.

8.13 버전이 원해요정밀한출력 형식입니다. 다음을 사용하는 경우:

echo "$SUM  $FILE" | sha256sum -c

(다시 공백 두 개) 제대로 작동할 것입니다. 최신 버전은 공간 수를 신경 쓰지 않으므로 해당 버전에서도 작동합니다.

관련 정보