Сначала пробывал на perl, но думаю, что на shell будет намного короче.
Список файлов записываю во временный файл командой find.
ls -l сообщит все права доступа и размер, awk запишет все кроме имен файлов в еще один временный файл.
md5sum сообщит md5 все файлов в созданном списке (awk выведет только хэши в 3-ий временный файл).
"Склеять" 2-ой и 3-ий временные файлы можно тоже с помощью awk.
Проблема в том, как эти строки из временного файла:
/home/dir/первый файл
/usr/bin/file
/home/dir/fi#$le3
Передать консольным командам ls и md5 вот так:
md5sum "/home/dir/первый файл" "/usr/bin/file" "/home/dir/fi#$le3"
И еще. md5sum не может подсчитывать md5 для каталогов. Как с этим быть?