У меня есть скрипт, но он шибко длинный (использует sqlite: сначала ищет файлы с одинаковыми размерами, потом считает их контрольные суммы и сравнивает, если одинаково - один из файлов делает хардлинком или симлинком - как указать). Но есть еще и утилита fdupes.