Русская Википедия:Fdupes
Шаблон:Lowercase fdupes — программа, написанная Андрианом Лопесом (Adrian Lopez), сканирующая каталоги для поиска дубликатов файлов, с возможностью вывода списка и автоматическим удалением дублей. Она сравнивает размер файла и MD5 хеш, и после сравнения начинает сверку по-байтно. Написана на языке программирования C и выпущена под Лицензией MIT.
Использование
fdupes -r /home/user/downloads
ключ -r — заставляет искать в том числе и в подкаталогах, ниже заданного.
Перенаправление в файл — удобно, если список дубликатов слишком большой:
fdupes -r /home/user/downloads > /home/user/duplicates.txt
Поиск файлов повторяющихся более одного раза и сохранение результатов в файл:
awk 'BEGIN{d=0} NF==0{d=0} NF>0{if(d)print;d=1}' /home/user/duplicates.txt > /home/user/duplicates.to.delete.txt
Заключение всех строк имен файлов в апострофы (чтобы исключить влияние пробелов в именах для следующей команды rm):
sed "s/\(.*\)/'\1'/" /home/user/duplicates.to.delete.txt > /home/user/duplicates.to.delete.ok.txt
Файл должен быть с LF переводом строки.
Заключение всех строк имен файлов в кавычки (чтобы исключить влияние пробелов в именах для следующей команды rm):
awk '{print "\"" $0 "\""}' /home/user/duplicates.to.delete.txt > /home/user/duplicates.to.delete.ok.txt
или
sed "s/\(.*\)/\"\1\"/" /home/user/duplicates.to.delete.txt > /home/user/duplicates.to.delete.ok.txt
Файл должен быть с LF переводом строки.
Удаление файлов, повторяющихся более одного раза:
xargs rm < /home/user/duplicates.to.delete.ok.txt
Этой командой производится поиск и удаление (ключ -d) дубликатов без дополнительных подтверждений на удаление (ключ -N) в текущем каталоге:
fdupes -d -N /home/user/download
Аналогичные программы
Другие программы в юниксоподобных системах, служащие для поиска дубликатов:
- duff (англ).
- dupmerge (англ). — работает на различных платформах (Win32/64 with Cygwin, *nix, Linux и т. п.)
- fdf (англ). — основана на Perl/c и запускается на большинстве платформ (Win32, *nix и, вероятно, других). Использует MD5, SHA1 и другие алгоритмы подсчёта контрольной суммы
- freedup (англ). — совместима со стандартом POSIX C и запускается на различных платформах (Windows с использованием средств Cygwin, Linux, AIX и т. п.)
- freedups (англ). — скрипт на perl
- fslint (англ). — имеет графический и консольный (командной строки) интерфейс.
- liten (англ). — Утилита предназначена для поиска дубликатов. Написана на чистом Питоне и работает из командной строки. В основе данной утилиты лежит библиотека, использующая подсчет контрольных сумм файлов, а также новейший алгоритм побайтового сравнения.
- rdfind (англ).
- ua (англ). — Unix/Linux утилита командной строки (консольная), спроектированная для использования программы find или ей подобных.
- findrepe (англ). — свободная Java-утилита командной строки, предназначенная для эффективного поиска дубликатов файлов (для платформ — GNU/Linux, Mac OS X, *nix, Windows)
- fdupe
- rmlint - консольная утилита, умеет создавать наглядные скрипты на sh для удаления файлов (в них можно заглянуть и скорректировать их перед запуском).
Программы поиска дубликатов, работающие под Windows:
- Teemoon Video Matching — программа поиска дубликатов видеофайлов (.NET) Текущий (2013-01-28) релиз ClamAV определяет как вирус.
См. также
- fdupes(1)(англ.) man-страницы Линукс (страницы встроенного руководства по использованию)
- Официальная домашняя страница программы fdupes (англ).
- Программы UNIX-подобных операционных систем