Ответы:
Вы можете использовать md5sum
статус возврата:
if md5sum -c file.md5; then
# The MD5 sum matched
else
# The MD5 sum didn't match
fi
Чтобы сделать вещи чище, вы можете добавить, --status
чтобы сказать md5sum
(возможно, только версия GNU) молчать:
if md5sum --status -c file.md5; then
# The MD5 sum matched
else
# The MD5 sum didn't match
fi
Более короткие формы работают так же хорошо, если это необходимо:
md5sum --status -c file.md5 && echo OK
md5sum
у тебя версия ? Что касается отсутствующих файлов, в системах, которые я проверял, md5sum --status -c file.md5 && echo OK
происходит сбой (и не выводится «OK»), если отсутствует файл, указанный в списке file.md5
. Что касается дополнительных файлов, md5sum -c
никогда не жалуется на дополнительные файлы, он только проверяет файлы, перечисленные в данном файле контрольной суммы.
md5sum --status -c file.md5 && echo OK
уступает md5sum: stat 'foo': No such file or directory
и OK
на
md5sum --status -c file.md5 && echo OK
к сожалению, не проверяет наличие отсутствующих или лишних файлов