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 символа), выводя каждую группу дубликатов отдельно.