Вот пример, который будет работать с [t] csh, sh и т.д., Используя команды 'find', 'awk', 'sort', 'uniq' и /bin /sh one-liner для запуска md5sum в получить подпись каждого файла. Со списком подписей для файлов обеих структур каталогов последовательность команд вернет те файлы, которые являются одинаковыми:
find a/ b/ -type f -exec md5sum {} \; > /tmp/list; awk '{print $1}' ' | awk '{print $2}' | sh -c 'while read s; do awk "/^$s/ { print \$2}" /tmp/list; echo; done'
По сути, это генерирует md5sum для всех файлов в каталоге 'a' и каталоге 'b'. Шестнадцатеричные строки (первый столбец) передаются в конвейер, отфильтровывающий экземпляры только одного вхождения для данной контрольной суммы, передавая остаток итератору /bin /sh, который извлекает все фактические файлы, соответствующие контрольной сумме (и вставляя пустая строка между группами.)
Он разделяет группы дубликатов пустой строкой. Это дает очевидное преимущество (помимо первоначального запроса) поиска дубликатов файлов, которые имеют одинаковое содержимое, но разные имена файлов.