Что лучший метод должен удалить файлы дублирующегося изображения из Вашего компьютера?

У меня есть много файлов дублирующегося изображения на моем компьютере Windows в различных подпапках и с различными именами файлов.

Какой сценарий Python или бесплатно распространяемую программу Вы рекомендовали бы для удаления дубликатов?

(Я считал этот подобный вопрос, но плакат там спрашивает о визуальных дубликатах с отличающимися размерами файла. Мои - точные дубликаты с различными именами файлов.)

14
задан 23.05.2017, 15:41

6 ответов

Не Полагайтесь на суммы MD5.

Суммы MD5 не являются надежным способом проверить на дубликаты, они - только способ проверить на различия.

Используйте MD5s для нахождения возможных дубликатов кандидата, и затем для каждой пары, совместно использующей MD5

  1. Открывает оба файла
  2. Ищет вперед в тех файлах, пока каждый не отличается.

Наблюдение я получаю downvoted людьми, делающими наивные подходы к файлу, копирует Идентификационные данные, Если Вы соберетесь положиться полностью на хеш-алгоритм для пользы совершенства, используйте что-то более жесткое как SHA256 или SHA512, то по крайней мере, Вы уменьшите вероятность до разумного градуса при наличии большего количества проверенных битов. MD5 Чрезвычайно слаб для условий коллизии.

Я также советую людям списки рассылки чтения, здесь названные 'проверка файла': http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html

Если Вы говорите, что "MD5 может однозначно определить все файлы исключительно", затем у Вас есть логическая ошибка.

Учитывая диапазон значений, переменных длин от 40 000 байтов в длине к 100 000 000 000 байтам в длине, общее количество комбинаций, доступных тому диапазону значительно, превышает возможное количество значений, представленных MD5, взвешивающимся во всего лишь 128 битах длины.

Представить 2^100,000,000,000 комбинации с только 2^128 комбинации? Я не думаю настолько, вероятно.

Наименее наивный путь

Наименее наивный путь и самый быстрый путь, для избавлений от дубликатов следующие.

  1. Размером: Файлы с другим размером не могут быть идентичными. Это занимает время, поскольку это не должно даже открывать файл.
  2. MD5: Файлы с различными значениями MD5/Sha не могут быть идентичными. Это берет немного дольше, потому что это должно считать все байты в файле и выполнить математику на них, но это делает несколько сравнений более быстрыми.
  3. Сбой вышеупомянутых различий: Выполните сравнение байта байтом файлов. Это - медленный тест для выполнения, который является, почему это оставляют, пока все другие факторы устранения не рассмотрели.

Fdupes делает это. И необходимо использовать программное обеспечение, которое использует те же критерии.

17
ответ дан 07.12.2019, 11:12

Это - один лайнер на Unix как (включая Linux) Ose или Windows с установленным Cygwin:

find . -type f -print0 | xargs -0 shasum | sort |
  perl -ne '$sig=substr($_, 0, 40); $file=substr($_, 42); \
    unlink $file if $sig eq $prev; $prev = $sig'

md5sum (который приблизительно на 50% быстрее) может использоваться, если бы Вы знаете, что нет никаких сознательно созданных коллизий (у Вас был бы лучший шанс выиграть 10 главных лотерей, чем шанс найти одну естественную md5 коллизию.)

Если Вы хотите видеть все копирование, Вы имеете вместо того, чтобы удалить их, просто изменяются unlink $file часть к print $file, "\n".

10
ответ дан 07.12.2019, 11:12

Я использовал fdupes (записанный в C) и freedups (Perl) в системах Unix, и они могли бы работать над Windows также; существуют также подобные, которые, как утверждают, работают над Windows: dupmerge, liten (записанный в Python), и т.д.

6
ответ дан 07.12.2019, 11:12

Для удаления дублирующихся изображений в Windows смотрят на DupliFinder. Это может сравнить изображения множеством критериев, такие как имя, размер и информация о действительном образе.

Чтобы другие инструменты удалили дубликаты файлов, смотрят на эту статью Lifehacker.

2
ответ дан 07.12.2019, 11:12

Вместо DupliFinder попробуйте разветвленный проект вместо этого, DeadRinger. Мы зафиксировали тонну ошибок в исходном проекте, добавили набор новых возможностей и существенно улучшили производительность.

1
ответ дан 07.12.2019, 11:12

Одной опцией может быть Dupkiller.

DupKiller является одним из самых быстрых и самых мощных инструментов для поиска и удаления дублирующихся или подобных файлов на Вашем компьютере. Сложные алгоритмы, созданные в его механизме поиска, выполняют высокие результаты — быстрый поиск файла. Много опций позволяет гибкой настройке поиска.

enter image description here

1
ответ дан 07.12.2019, 11:12

Теги

Похожие вопросы