Часто возникает необходимость подсчитать контрольные суммы файлов в каталоге и всех его подкаталогах. Другими, требуется получить список файлов и их контрольных сумм, и сделадь это рекурсивно в заданной директории.
В Linux это можно сделать достаточно просто. Нужно воспользоваться следующей командой, запущенной в заданном подкаталоге:
find -type f -exec md5sum '{}' \;
Эта команда выдаст список md5-сумм в консоль. Чтобы получить список сразу в файл, можно выполнить команду:
find -type f -exec md5sum '{}' \; > md5sum.txt
В этом варианте есть небольшая проблема: в список попадет и сам файл md5sum.txt, а зачастую такое поведение не нужно. Чтобы исключить попадание файла md5sum.txt в конечный вывод, команду надо переделать вот так:
find -type f \( -not -name "md5sum.txt" \) -exec md5sum '{}' \; > md5sum.txt
Вывод команды выглядит примерно так:
5a28f1322f7b5c638825a152262541f9 ./joystick_256/config.ini
e21a10e16da5c6853d23a817d81c1aca ./keyboard/config.ini
2eae04a2a3f95bdd0cc1c98241876898 ./keyboard/sample.txt
1df034647c487612474b4c30773066e7 ./mouse/config.ini
Таким же способом можно выполнить вообще любую команду над всеми файлами в директории и поддиректории, достаточно заменить md5sum на имя какой-нибудь другой команды.