Dlaczego dopasowanie po nazwie i rozmiarze znajduje złe pliki
Dopasowanie po nazwie zawodzi w obie strony. To samo zdjęcie zapisane dwa razy staje się IMG_4021.jpg i IMG_4021 (1).jpg — różne nazwy, identyczne bajty — podczas gdy dwa zupełnie niezwiązane dokumenty mogą nazywać się faktura.pdf. Dodanie rozmiaru pliku zmniejsza liczbę fałszywych trafień, ale ich nie usuwa: dwa różne JPEG-i z tego samego aparatu często lądują w odległości kilku bajtów od siebie, a mnóstwo małych plików konfiguracyjnych ma identyczny rozmiar przez przypadek.
Kierunek, który realnie decyduje o bezpieczeństwie, to fałszywy pozytyw: narzędzie, które nazywa duplikatami pliki jedynie podobne, prędzej czy później usunie coś nieodżałowanego. Z tego samego powodu dopasowanie „podobnych obrazów” zasługuje na podejrzliwość wszędzie tam, gdzie dzieje się automatycznie. Przy ręcznym przeglądaniu biblioteki zdjęć jest szczerze użyteczne, ale seria dziesięciu niemal identycznych ujęć to dziesięć różnych fotografii, nie dziewięć duplikatów — i żaden algorytm nie wie, na którym kadrze oczy są otwarte.
Jedyna definicja, która się broni, to tożsamość bajt po bajcie. Dwa pliki są duplikatami, jeśli ich zawartość jest identyczna, niezależnie od nazwy, folderu, znacznika czasu czy rozszerzenia. To pytanie, na które odpowiada skrót — i odpowiada na nie tak samo za każdym razem.
Jak działa haszowanie zawartości i dlaczego jest szybkie
Skrót kryptograficzny sprowadza dowolny plik do odcisku o stałej długości — 64 znaki szesnastkowe dla SHA-256. Identyczna zawartość zawsze daje identyczny odcisk, a w praktyce dwa różne pliki nigdy się nie zderzają. Porównywanie odcisków jest więc niezawodnym zamiennikiem porównywania całych plików i pozwala porównywać tysiące plików między sobą zamiast parami.
Zahasowanie wszystkiego oznaczałoby czytanie każdego bajtu na dysku, dlatego kompetentna implementacja pracuje etapami. Najpierw grupuje pliki po dokładnym rozmiarze, bo pliki o różnych rozmiarach nie mogą być identyczne — i ten jeden krok eliminuje przytłaczającą większość kandydatów bez czytania jakiejkolwiek zawartości. Potem haszuje tylko mały prefiks plików, które zostały w grupach wieloplikowych. Dopiero ocalali z tej rundy dostają pełny SHA-256. Na typowym dysku etap pełnego czytania dotyka w efekcie małego ułamka danych.
To etapowanie wyjaśnia, jak skan powinien przebiegać. Pierwsza tura po kilkuset tysiącach plików to głównie robota na metadanych i kończy się w minuty; wolna część to finalne haszowanie dużych plików wideo, które naprawdę dzielą rozmiar. Jeśli narzędzie trwa godziny i przybija dysk, twierdząc, że porównuje zawartość, to prawdopodobnie haszuje wszystko bez rozróżnienia.
Ręcznie w PowerShellu
Do ukierunkowanej kontroli nie potrzebujesz żadnego oprogramowania. Poniższy jednolinijkowiec grupuje pliki po długości, wyrzuca rozmiary unikalne, haszuje resztę algorytmem SHA-256 i wypisuje tylko grupy, w których więcej niż jeden plik dzieli skrót. Skieruj go na konkretny folder — cały dysk też zadziała, ale zajmie chwilę.
- Get-ChildItem -Path 'C:\Users\You\Pictures' -Recurse -File | Group-Object Length | Where-Object { $_.Count -gt 1 } | ForEach-Object { $_.Group } | Get-FileHash -Algorithm SHA256 | Group-Object Hash | Where-Object { $_.Count -gt 1 } | ForEach-Object { $_.Group.Path }
- Dodaj -Filter '*.jpg' do Get-ChildItem, żeby ograniczyć do jednego typu plików
- Dodaj | Out-File C:\Temp\dupes.txt na końcu, żeby zapisać listę do przejrzenia
- Uruchom w Windows Terminalu albo PowerShellu; do własnych folderów nie trzeba uprawnień administratora
- Użyj Get-FileHash -Algorithm SHA1, jeśli haszujesz bardzo dużą bibliotekę wideo i zależy ci na szybkości
Przeczytaj wynik, zanim cokolwiek usuniesz
Polecenie powyżej celowo wypisuje ścieżki i nic nie usuwa. Ten rozdział to cały model bezpieczeństwa: wygeneruj listę, przeczytaj ją, potem działaj. Posortuj wynik po folderach, a wzorzec zobaczysz zwykle od razu — folder importu z aparatu zdublowany do folderu kopii z datą, projekt wyeksportowany dwa razy, biblioteka muzyki istniejąca zarówno w Muzyce, jak i w starej kopii z dysku zewnętrznego wklejonej na C:.
Gdy już usuwasz, usuwaj do Kosza, a nie na stałe, i rób to małymi partiami z przerwą na normalne używanie komputera pomiędzy nimi. Tryb awarii przy sprzątaniu duplikatów to nigdy pojedynczy zły plik; to pewna siebie zbiorcza selekcja po folderach, których relacji nie zrozumiałeś. Utrzymanie Kosza w obwodzie zamienia kosztowny błąd w niedogodność.
Gdzie duplikaty naprawdę się kumulują
Prawdziwe duplikaty kumulują się w garści przewidywalnych miejsc i skanowanie tylko ich jest i szybsze, i daleko bezpieczniejsze niż skanowanie całego C:. Pobrane to mistrz: ten sam instalator albo PDF pobrany trzy razy, każdy z numerowanym sufiksem. Foldery zdjęć są drugie, zwykle dlatego, że import z telefonu przebiegł dwa razy albo karta została skopiowana przed i po zmianie nazwy.
- Pobrane — ponowne pobrania z sufiksami (1), (2)
- Obrazy i foldery importu z telefonu — import uruchomiony więcej niż raz
- Foldery chmury — kopie konfliktowe OneDrive i Dropbox z dopisaną nazwą urządzenia
- Pulpit i foldery „stary pulpit” po reinstalacji Windows
- Foldery mediów komunikatorów — ten sam obraz zapisany przez kilka czatów
- Foldery eksportu projektów — rendery i buildy eksportowane wielokrotnie
- Stary dysk zewnętrzny skopiowany w całości do folderu na C:
Czego nigdy nie wolno deduplikować
Zdublowana zawartość wewnątrz instalacji oprogramowania jest normalna i zamierzona. Wiele aplikacji celowo dostarcza tę samą bibliotekę środowiska uruchomieniowego do kilku folderów, żeby każdy ładował wersję, na której był testowany; usunięcie jednej kopii dlatego, że pasuje do drugiej, to recepta na aplikację, która startuje dobrze, a miesiące później wysypuje się na jednej konkretnej funkcji. Ta sama logika dotyczy pakietów zasobów gier i folderów deweloperskich, gdzie identyczne zależności występują w wielu podfolderach projektów.
Sam Windows jest najbardziej ostrą krawędzią. C:\Windows\WinSxS pełen jest plików, które wyglądają na zdublowane, a są twardymi łączami wskazującymi te same dane na dysku, więc naiwny skaner zgłasza gigabajty „duplikatów”, których usunięcie nie uwalnia niczego, a kiedy już uwalnia — łamie obsługę składników. Ograniczaj każde skanowanie duplikatów do własnych folderów z danymi, a narzędzie proponujące skanowanie folderów systemowych traktuj jako powód do zmiany narzędzia.
- C:\Windows i wszystko pod nim, przede wszystkim WinSxS
- C:\Program Files i C:\Program Files (x86)
- %APPDATA% i %LOCALAPPDATA% — stan i profile aplikacji
- C:\ProgramData — licencje i bazy aplikacji
- Foldery instalacji gier i katalogi treści launcherów
- Foldery deweloperskie: node_modules, vendor, środowiska wirtualne, wyniki buildów
- Wszystko na dysku, którego nie jesteś jedynym użytkownikiem
Wybór ocalałej kopii i pułapki
Gdy grupa zostanie potwierdzona jako identyczna, ocalałą kopią powinna być ta w miejscu, do którego zajrzałbyś najpierw — zwykle oryginalny folder, a nie kopia zapasowa, egzemplarz z Pobranych ani ten z Pulpitu. Wol ścieżkę o najkrótszej, najbardziej sensownej nazwie. Jeśli jedna kopia leży w synchronizowanym folderze chmury, a druga nie, zostaw synchronizowaną tylko wtedy, gdy ten folder jest naprawdę twoim miejscem pracy — w przeciwnym razie oddajesz jedyną kopię usłudze, której synchronizację możesz później zresetować.
Trzy pułapki zasługują na nazwanie. Pliki spięte twardym łączem pokazują się jako osobne ścieżki dzielące te same dane, więc usunięcie jednej nie uwalnia niczego, a druga dalej działa — nieszkodliwe, ale mylące, gdy zgłaszane oszczędności nigdy się nie materializują. Pliki zastępcze chmury pod Plikami na żądanie OneDrive mogą w ogóle nie być obecne lokalnie, a ich zahasowanie wymusza pobranie całego folderu. A pliki wewnątrz folderu, którym zarządza coś innego — zestaw kopii zapasowych, repozytorium, biblioteka gier — są duplikatami tylko z punktu widzenia systemu plików; program, który je posiada, oczekuje obu.
Do powtarzalnej wersji tego przepływu moduł duplikatów Kleaner PRO porównuje SHA-256 zamiast nazw, domyślnie pomija foldery systemowe i programowe, grupuje trafienia z pełnymi ścieżkami i pozwala zostawić wybraną przez ciebie kopię, zanim cokolwiek zostanie usunięte. Ścieżka PowerShell powyżej robi tę samą robotę dla pojedynczego folderu i jest właściwym narzędziem, gdy chcesz sprawdzić tylko jedno miejsce.
Pytania i odpowiedzi
Czy bezpiecznie jest usuwać duplikaty plików automatycznie?
Nie w folderach systemowych ani programowych, gdzie identyczne pliki bywają zamierzone albo spięte twardym łączem. We własnych dokumentach, zdjęciach i pobranych jest bezpiecznie, o ile narzędzie dopasowywało po skrócie zawartości, a usuwasz do Kosza.
Czy dwa różne pliki mogą mieć ten sam skrót SHA-256?
Nie w żadnym praktycznym sensie — nigdy nie wyprodukowano kolizji SHA-256. Właśnie dlatego do deduplikacji używa się haszowania zamiast porównywania nazw, rozmiarów czy znaczników czasu.
Dlaczego usunięcie duplikatów uwalnia mniej miejsca, niż zgłaszano?
Zwykle przez twarde łącza: kilka ścieżek wskazuje jedną kopię danych, więc usunięcie jednej ścieżki nie uwalnia niczego. Pliki zastępcze chmury bywają też liczone w pełnym rozmiarze, choć lokalnie zajmują prawie nic.
Czy podobne zdjęcia to to samo co zdublowane zdjęcia?
Nie. Dopasowanie podobnych obrazów porównuje wygląd, więc seria niemal identycznych ujęć wygląda jak duplikaty, będąc dziesięcioma osobnymi fotografiami. Używaj tego do ręcznego przeglądu, nigdy do masowego usuwania.
Sprawdź warunki przed zakupem
Porównaj czas licencji i liczbę urządzeń. Każdy płatny plan odblokowuje ten sam zestaw narzędzi PRO.
Przeczytaj także
Napisz do nas: [email protected]