Пошук дублікатів файлів

Киньте сюди пакет файлів, і ця сторінка знайде ті, чий вміст побайтово ідентичний, у три проходи: фільтр за розміром (файли різного розміру ніколи не можуть бути дублікатами), групування тих, що лишилися, за 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 прибирає навіть цей теоретичний сумнів.