Более простой способ сравнения контрольной суммы md5?

11

После загрузки файла с контрольной суммой md5 я проверяю его с помощью

md5 *file* | grep *given_checksum*

например

md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2

но мне показалось смешным требовать grep и трубы для того, что, безусловно, является очень распространенной задачей. Интересно, есть ли лучший способ сделать это?

Бен Гриффитс
источник
Что это за инструмент md5? Из какой упаковки это происходит?
manatwork
Я не осознавал, что все было по-другому, пока я действительно не задал этот вопрос и не начал искать ответы, но я использую bash в OS X и это собственный инструмент Apple, у которого нет опции -c. Видимо они прекратили связывать md5sum в 10.5 ... Я сейчас установил оригинальный инструмент unix md5sum.
Бен Гриффитс

Ответы:

20

md5sumимеет -cвозможность проверить существующий набор сумм, и его состояние выхода указывает на успех / неудачу.

Пример:

$ echo "ff9f75d4e7bda792fca1f30fc03a5303  package.deb" | md5sum -c -
package.deb: OK

Найдите хороший ресурс здесь

psusi
источник
4
Благодарю. Просто для завершения, я сейчас использую, md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"который кажется чище, чем с использованием grep!
Бен Гриффитс
хм, не так много улучшений по сравнению с оригинальным файлом $ md5 | grep Given_checksum и если вы хотите использовать строку без учета регистра, вы должны придерживаться grep -i
StandardNerd
Я получал, no properly formatted MD5 checksum lines foundкогда я использовал, md5sum -c <file.md5> <file>но эта команда работала для меня.
Вишрант
1

Обычный способ bash:

shopt -s nocasematch
if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Хауке Лагинг
источник
1
md5sum -c <filename>.zip.md5 <filename>.zip

Это скажет вам хорошо, если они одинаковы.

Это работает и с tar.

Энтони Петрильо
источник
0

Вдохновленный ответом псуси

echo "$(cut -f1 -d' ' your_file.jar.md5) your_file.jar" | md5sum -c -

Я использовал, так cutкак не все md5хранятся одинаково. пример

Vishrant
источник