На 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?
На Ubuntu 14.04:
⟫ sha256sum --version
sha256sum (GNU coreutils) 8.21
На Wheezy:
$ sha256sum --version
sha256sum (GNU coreutils) 8.13
manpages в обеих ОС говорят:
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 -t /dev/null
(текстовый режим, по умолчанию) сsha256sum -b /dev/null
(двоичный режим). Это не имеет значения в Unix / Linux, по-видимому, но это может быть в Windows .