Используйте md5sum для проверки файла в скрипте

15

Я хочу проверить файл, используя md5sum -c file.md5. Я могу сделать это вручную, но я не знаю, как проверить правильность сценария.

Робин
источник

Ответы:

25

Вы можете использовать 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 --status -c file.md5 && echo OKк сожалению, не проверяет наличие отсутствующих или лишних файлов
Эрик Мартино,
1
@ Эрик, какая md5sumу тебя версия ? Что касается отсутствующих файлов, в системах, которые я проверял, md5sum --status -c file.md5 && echo OKпроисходит сбой (и не выводится «OK»), если отсутствует файл, указанный в списке file.md5. Что касается дополнительных файлов, md5sum -cникогда не жалуется на дополнительные файлы, он только проверяет файлы, перечисленные в данном файле контрольной суммы.
Стивен Китт
1
md5sum --status -c file.md5 && echo OKуступает md5sum: stat 'foo': No such file or directoryи OKна
Эрик Мартино