Русская Википедия: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 определяет как вирус.

См. также

Шаблон:Команды UNIX