우분투 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
나는 이것을 이해하지 못한다. 데비안 쉘 스크립트에서 체크섬을 확실하게 확인하려면 어떻게해야합니까?
우분투 14.04에서 :
⟫ sha256sum --version
sha256sum (GNU coreutils) 8.21
Wheezy에서 :
$ sha256sum --version
sha256sum (GNU coreutils) 8.13
두 OS 모두의 맨 페이지는 다음과 같이 말합니다.
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
답변
간격에 관심이 있습니다. 당신이 실행하는 경우 :
sha256sum /dev/null
당신은 얻을
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null
(두 칸). 그렇게 사용 echo
하면 단어 사이에 공백이 하나만 있습니다.
버전 8.13은 출력이 정확한 형식을 원합니다 . 다음을 사용하는 경우 :
echo "$SUM $FILE" | sha256sum -c
(다시 두 칸) 작동합니다. 최신 버전은 얼마나 많은 공간이 있는지 상관하지 않으므로 공간도 함께 작동합니다.