find -type d -name ".svn" -prune -o -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | xargs -I{} -n1 find -type d -name ".svn" -prune -o -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate
Команда find ищет дубликаты файлов, исключая каталоги .svn. Сначала она ищет файлы, исключая каталоги .svn, сортирует их по размеру, затем находит дубликаты по хэшу MD5.
— find -type d -name ".svn" -prune -o -not -empty -type f -printf "%s\n" находит все непустые файлы, исключая каталоги .svn и выводит их размер.
— sort -rn сортирует размеры файлов в обратном порядке.
— uniq -d находит повторяющиеся размеры файлов.
— xargs -I{} -n1 find -type d -name ".svn" -prune -o -type f -size {}c -print0 находит файлы того же размера, исключая .svn каталоги, и выводит их с нулевым разделителем.
— xargs -0 md5sum вычисляет хэш MD5 для каждого файла.
— sort сортирует хэши MD5.
— uniq -w32 --all-repeated=separate находит дубликаты файлов, основанные на хэше MD5 (32 символа), выводя каждую группу дубликатов отдельно.
