Команда tar -czf backup.tar.gz ./folder && md5sum backup.tar.gz > backup.tar.gz.md5 решает задачу «сделать tar md5» буквально в одну строку: первый вызов упаковывает каталог в архив, второй вычисляет контрольную сумму и сохраняет её в отдельный файл. Такая связка — стандартный способ убедиться, что архив не повредился при передаче по сети или хранении на съёмном носителе.
Ниже разберём, что именно делает каждая команда, какие ключи использовать в разных ситуациях и как проверить целостность архива на другой машине. Все примеры работают в стандартных дистрибутивах Linux, а также в окружениях с GNU-утилитами — например, в WSL на Windows или в терминале macOS (с поправкой на команду md5 вместо md5sum).
Что такое tar и зачем нужна сумма MD5
Tar (tape archiver) — утилита для объединения множества файлов в один потоковый архив. Сама по себе она не сжимает данные: сжатие добавляется через внешние кодеки — gzip (ключ z), bzip2 (ключ j) или xz (ключ J). Результатом обычно становится файл вида архив.tar или архив.tar.gz.
MD5 — алгоритм хеширования, выдающий 128-битную контрольную сумму в виде строки из 32 шестнадцатеричных символов. Для задач контроля целостности (не криптографической защиты) этого достаточно: если хотя бы один байт архива изменился, сумма будет совершенно другой. Именно поэтому рядом с файлами на зеркалах дистрибутивов часто лежат файлы .md5.
⚠️ Внимание: MD5 считается уязвимым для намеренных коллизий. Для проверки случайных повреждений он подходит, но для защиты от подмены файла злоумышленником используйте sha256sum — синтаксис команд полностью аналогичен.
Базовая команда: создать архив и посчитать сумму
Минимальный рабочий вариант выглядит так:
tar -czf project.tar.gz /путь/к/каталогуmd5sum project.tar.gz > project.tar.gz.md5
Разберём ключи. c — создать архив, z — сжать через gzip, f — записать результат в указанный файл. Вторая команда вычисляет хеш и перенаправляет его в текстовый файл рядом с архивом. Внутри .md5-файла окажется строка вида:
d41d8cd98f00b204e9800998ecf8427e project.tar.gzЕсли нужно обойтись без промежуточного файла и просто увидеть сумму на экране, достаточно md5sum project.tar.gz. Для пакетной обработки нескольких архивов удобно передать их списком: md5sum *.tar.gz > checksums.md5 — тогда один файл будет хранить суммы сразу всех архивов в каталоге.