Команды Linux · 3 min read · Sep 20, 2025
Команда md5sum в Linux: Объяснение для начинающих (5 примеров)

При загрузке файлов, особенно при установке файлов, загруженных с веб-сайта, через торрент-протокол или FTP-сервер, полезно проверить, что загрузка действительна. Веб-сайты часто отображают хэш-значение для каждого файла, чтобы убедиться, что загрузка завершена правильно. Эта статья обсудит команду md5sum, которую вы можете использовать для проверки загрузки. Три другие утилиты, sha1sum, sha256sum и sha512sum, работают так же, как и md5sum. Этот учебник совместим со всеми основными дистрибутивами Linux.
Команда md5sum в Linux
Команда md5sum выводит контрольную сумму из 32 символов (128 бит) для данного файла, используя алгоритм MD5. Ниже приведен синтаксис команды этого инструмента командной строки:
md5sum [OPTION]... [FILE]...А вот как страница man для md5sum объясняет это:
Выводит или проверяет контрольные суммы MD5 (128 бит).Следующие примеры в формате вопросов и ответов дадут вам еще лучшее представление о базовом использовании md5sum.
Примечание: Мы будем использовать три файла с именами file1.txt, file2.txt и file3.txt в качестве входных файлов в наших примерах. Текст в каждом файле приведен ниже.
file1.txt:
hi
hello
how are you
thanks.file2.txt:
hi
hello to you
I am fine
Your welcome!file3.txt:
hallo
Guten Tag
Wie geht es dir
Danke.Вопрос 1. Как отобразить хэш-значение?
Используйте команду без каких-либо опций, чтобы отобразить хэш-значение и имя файла.
md5sum file1.txtВот вывод, который эта команда произвела на нашей системе:
[Documents]$ md5sum file1.txt
1ff38cc592c4c5d0c8e3ca38be8f1eb1 file1.txt
[Documents]$Вывод также может быть отображен в формате BSD, используя опцию –tag.
md5sum --tag file1.txt[Documents]$ md5sum --tag file1.txt
MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1
[Documents]$Вопрос 2. Как проверить несколько файлов одновременно?
Команда md5sum может проверять несколько файлов одновременно. Мы добавим file2.txt и file3.txt, чтобы продемонстрировать возможности.
Если вы запишите хэши в файл, вы можете использовать этот файл, чтобы проверить, изменился ли какой-либо из файлов. Здесь мы записываем хэши файлов в файл hashes, а затем используем его, чтобы проверить, что ни один из файлов не изменился.
md5sum file1.txt file2.txt file3.txt > hashes
md5sum --check hashes[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes
[Documents]$ md5sum --check hashes
file1.txt: OK
file2.txt: OK
file3.txt: OK
[Documents]$ Теперь мы изменим file3.txt, добавив один восклицательный знак в конец файла, и повторим команду.
echo "!" >> file3.txt
md5sum --check hashes[Documents]$ md5sum --check hashes
file1.txt: OK
file2.txt: OK
file3.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[Documents]$ Вы можете видеть, что file3.txt изменился.
Вопрос 3. Как отобразить только измененные файлы?
Если у вас много файлов для проверки, вы можете захотеть отобразить только файлы, которые изменились. Используя опцию “–quiet”, md5sum будет перечислять только файлы, которые изменились.
md5sum --quiet --check hashes[Documents]$ md5sum --quiet --check hashes
file3.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[Documents]$Вопрос 4. Как обнаружить изменения в скрипте?
Вы можете захотеть использовать md5sum в скрипте. Используя опцию “–status”, md5sum не будет выводить никакого вывода. Вместо этого код состояния возвращает 0, если изменений нет, и 1, если файлы не совпадают. Следующий скрипт hashes.sh вернет 1 в коде состояния, потому что файлы изменились. Файл скрипта приведен ниже:
sh hashes.shhashes.sh:
#!/bin/bash
md5sum --status --check hashes
Result=$?
echo "File check status is: $Result"
exit $Result
[Documents]$ sh hashes.sh
File check status is: 1
[lion@ornatecandy Documents]$ Вопрос 5. Как определить недействительные хэш-значения?
md5sum может сообщить вам, если у вас есть недействительные хэши, когда вы сравниваете файлы. Чтобы предупредить вас, если какие-либо хэш-значения неверны, вы можете использовать опцию –warn. Для этого последнего примера мы будем использовать sed, чтобы вставить дополнительный символ в начале третьей строки. Это изменит хэш-значение в файле hashes, сделав его недействительным.
sed -i '3s/.*/a&/' hashes
md5sum --warn --check hashesЭто показывает, что третья строка имеет недействительный хэш.
[Documents]$ sed -i '3s/.*/a&/' hashes
[Documents]$ md5sum --warn --check hashes
file1.txt: OK
file2.txt: OK
md5sum: hashes: 3: improperly formatted MD5 checksum line
md5sum: WARNING: 1 line is improperly formatted
[Documents]$Заключение
Команда md5sum является простой командой, которая может быстро проверить один или несколько файлов, чтобы определить, изменился ли какой-либо из них по сравнению с оригинальным файлом. Для получения дополнительной информации о md5sum смотрите его страницу man.
Get new posts in your inbox
No spam. Unsubscribe anytime.