Поиск дубликатов файлов

Перетащите пакет файлов, и страница найдёт те, у которых содержимое побайтово идентично, в три прохода: фильтр по размеру (файлы разного размера никогда не бывают дубликатами), группировка уцелевших по SHA-256 и финальное полное побайтовое сравнение для страховки. Вы получаете каждый кластер дубликатов с занимаемым ими лишним местом, флажки для копий, которые можно удалить, и CSV-список для файлового менеджера. Два файла с именем photo.jpg и разными байтами — не дубликаты; два файла с разными именами и одинаковыми байтами — дубликаты. Ничего не загружается.
Перетащите файлы сюда, или нажмите, чтобы выбрать их
До 50 файлов, по 200 МБ каждый. Файлы остаются на этом компьютере.
Файлы не выбраны.
Кластеры одинаковых файлов появятся здесь после сканирования. Первый файл каждого кластера отмечен как копия для сохранения.
Страница в браузере не может удалять ваши файлы — и не должна. Экспортированный список (имя, размер, SHA-256, идентификатор кластера) предназначен для применения в проводнике, Finder или вашем файловом менеджере, где удаления видны и обратимы. Приватность: весь поиск выполняется локально; ни один файл и ни одна контрольная сумма не покидают эту вкладку.

Что такое дубликат файла?

Настоящий дубликат — это файл, у которого каждый байт совпадает с байтами другого файла. Не «одинаковое имя» (copy.jpg с двух камер — разные фотографии), не «одинаковый размер» (миллион файлов имеют размер 1 024 байта), не «выглядит одинаково» (пересохранённый JPEG — другой поток байтов). Учитывается только равенство содержимого — поэтому сканирование не обманывается переименованными копиями, копиями с другой датой и файлами, разбросанными по разным папкам.

Как работают три прохода

ПроходСравниваетСтоимостьПочему
1 — размерразмер файла в байтахмгновенно (метаданные)разный размер не может быть одинаковым; обычно отсеивает большинство файлов без чтения
2 — SHA-256дайджест всего содержимогоодно чтение на оставшийся файлодинаковый дайджест у разного содержимого вычислительно неосуществим
3 — байтысобственно байтыодно дополнительное чтение на парустраховка: доказывает равенство, не полагаясь на хеш вообще

Предварительный проход по размеру — не изящная оптимизация, а то, что делает сравнение содержимого посильным. В папке из 5 000 фотографий может быть 50 кластеров, но до стадии хеширования доходят всего несколько сотен файлов.

Чего инструмент намеренно не делает

Нет почти-дубликатов: одна и та же фотография в двух разрешениях или двух уровнях качества — разные байты и не помечается; для этой задачи нужно перцептивное хеширование изображений, это другой инструмент. Нет удаления: веб-страница, удаляющая файлы на вашем диске, была бы уязвимостью безопасности, а не функцией; вместо этого вы получаете список. Нет облака: ничего не загружается, а значит, и ничего не может быть просканировано без чтения ваших файлов.

Частые вопросы

Почему первый файл помечен как «оставить»? — какой-то файл в кластере должен уцелеть; первый по порядку выбора — детерминированный, скучный выбор. Измените любой флажок перед экспортом списка.
Что такое «лишнее место»? — размер каждой копии сверх первой в её кластере, суммированный по всем кластерам: байты, которые вы вернёте, удалив лишние копии.
Может ли SHA-256 ошибаться? — на практике нет: коллизия потребовала бы намеренно построенной пары, и для SHA-256 она ни разу не встречалась. Проход 3 снимает даже это теоретическое сомнение.