Объяснение команды Linux md5sum для начинающих (5 примеров)
На этой странице
- Команда Linux md5sum
- Q1. Как отобразить значение хеша?
- Вопрос 2. Как проверить несколько файлов одновременно?
- Вопрос 3. Как отображать только измененные файлы?
- Q4. Как обнаружить изменения в скрипте?
- В5. Как определить недопустимые значения хэша?
- Заключение
При загрузке файлов, особенно при установке файлов, загруженных с веб-сайта, через торрент-протокол или FTP-сервер, рекомендуется убедиться, что загрузка действительна. Веб-сайты часто отображают хэш-значение для каждого файла, чтобы убедиться, что загрузка завершена правильно. В этой статье будет обсуждаться команда md5sum, которую вы можете использовать для проверки загрузки. Три другие утилиты, sha1sum, sha256sum и sha512sum, работают так же, как и md5sum. Это руководство совместимо со всеми основными дистрибутивами Linux.
Команда Linux md5sum
Команда md5sum печатает 32-символьную (128-битную) контрольную сумму данного файла, используя алгоритм MD5. Ниже приведен синтаксис команды этого инструмента командной строки:
md5sum [OPTION]... [FILE]...
А вот как это объясняет справочная страница md5sums:
Print or check MD5 (128-bit) checksums.
Следующие примеры в стиле вопросов и ответов дадут вам еще лучшее представление об основном использовании md5sum.
Примечание. В качестве входных файлов рекомендуется использовать три файла с именами file1.txt, file2.txt и file3.txt. в наших примерах. Текст в каждом файле указан ниже.
file1.txt:
hi hello how are you thanks.
файл2.txt:
hi hello to you I am fine Your welcome!
файл3.txt:
hallo Guten Tag Wie geht es dir Danke.
Q1. Как отобразить значение хеша?
Используйте команду без каких-либо параметров, чтобы отобразить хеш-значение и имя файла.
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]$
Q2. Как проверить несколько файлов одновременно?
Команда md5sum может одновременно проверять несколько файлов. Мы добавим файлы file2.txt и file3.txt, чтобы продемонстрировать возможности.
Если вы записываете хэши в файл, вы можете использовать этот файл, чтобы проверить, изменился ли какой-либо из файлов. Здесь мы записываем хэши файлов в хэши файлов, а затем используем их для проверки того, что ни один из файлов не изменился.
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 изменился.
Q3. Как отображать только измененные файлы?
Если у вас есть много файлов для проверки, вы можете захотеть отобразить только файлы, которые были изменены. Используя опцию \--quiet\, md5sum будет отображать только те файлы, которые были изменены.
md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$
Q4. Как обнаружить изменения в скрипте?
Вы можете использовать md5sum в скрипте. Используя опцию \--status\, md5sum не будет печатать никаких результатов. Вместо этого код состояния возвращает 0, если изменений нет, и 1, если файлы не совпадают. Следующий скрипт hashes.sh вернет 1 в коде состояния, потому что файлы изменились. Файл скрипта ниже:
sh hashes.sh
hashes.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 [ Documents]$
Q5. Как определить недопустимые значения хэша?
md5sum может сообщить вам, если у вас есть неверные хэши, когда вы сравниваете файлы. Чтобы предупредить вас, если какие-либо значения хеша неверны, вы можете использовать параметр --warn. В этом последнем примере мы будем использовать sed для вставки дополнительного символа в начале третьей строки. Это изменит хэш-значение в хэшах файлов, сделав его недействительным.
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 см. его справочную страницу.