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