Простіший спосіб порівняння контрольної суми md5?


11

Після завантаження файлу, у якому є контрольна сума md5, я зараз його перевіряю

md5 *file* | grep *given_checksum*

напр

md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2

але мені здалося смішним вимагати греп і труби для того, що, безумовно, дуже поширене завдання. Наклеюючись на те, щоб робити якісно ефективні речі, я замислився, що є кращий спосіб зробити це?


Що це за інструмент md5? З якого пакету він приходить?
манатурка

Я не усвідомлював, що це було інакше, поки я фактично не задав це питання і не почав розбиратися у відповідях, але я використовую bash на OS X, і це власний інструмент Apple, який не має можливості -c. Мабуть, вони перестали купувати md5sum в 10.5 ... Я зараз встановив оригінальний інструмент unix md5sum.
Бен Гріффітс

Відповіді:


20

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

Приклад:

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

Знайдіть приємний ресурс тут


4
Спасибі. Тільки для завершення я зараз використовую, md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"що здається чистішим, ніж задіяння grep!
Бен Гріффітс

хм, не дуже покращено початковий файл $ md5 | греп Given_checksum, і якщо ви хочете використовувати нечутливий шрифт, ви повинні дотримуватися grep -i
StandardNerd

Я отримував, no properly formatted MD5 checksum lines foundколи використовував, md5sum -c <file.md5> <file>але ця команда працювала на мене.
Вишрант

1

Звичайним способом баш було б:

shopt -s nocasematch
if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]


0

Натхненний відповіддю псусі

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

Я використовував, cutяк не всі md5зберігаються однаково. Приклад

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.