Dublet-filfinder

Læg en gruppe filer i, og denne side finder dem, hvis indhold er byte-identisk, i tre trin: et størrelsesfilter (filer med forskellig størrelse kan aldrig være dubletter), en SHA-256-gruppering af de tilbageblevne og til sidst en fuld byte-sammenligning som forsikring. Man får hver dublet-klynge med den plads, den spilder, afkrydsningsfelter for de kopier, man ville slette, og en CSV-tjekliste til sin filhåndtering. To filer ved navn photo.jpg med forskellige bytes er ikke dubletter; to filer med forskellige navne og samme bytes er. Intet uploades.
Slip filer her, eller klik for at vælge dem
Op til 50 filer, 200 MB hver. Filerne forbliver på denne maskine.
Ingen filer valgt.
Klynger af identiske filer vises her efter scanningen. Den første fil i hver klynge er forudmarkeret som kopien, der skal beholdes.
En browserside kan ikke slette filer — og bør ikke. Den tjekliste, der eksporteres (navn, størrelse, SHA-256, klynge-id), er beregnet til at blive anvendt i Stifinder, Finder eller den filhåndtering, man foretrækker, hvor sletninger er synlige og kan fortrydes. Privatliv: hele scanningen kører lokalt; ingen fil eller digest forlader fanen.

Hvad er en dublet-fil?

En ægte dublet er en fil, hvis hver byte er lig bytes i en anden fil. Ikke “samme navn” (copy.jpg fra to kameraer er forskellige fotos), ikke “samme størrelse” (en million filer er 1.024 bytes), ikke “ser ens ud” (et genoptaget JPEG er en anden bytestrøm). Kun indholdslighed tæller — hvilket også er grunden til, at scanningen er immun over for omdøbte kopier, genoptaget kopier og filer spredt på forskellige mapper.

Sådan virker de tre trin

TrinSammenlignerOmkostningHvorfor
1 — størrelsefilstørrelse i bytesøjeblikkelig (metadata)forskellig størrelse kan aldrig være identisk; fjerner typisk de fleste filer uden at læse noget
2 — SHA-256fuld indholds-digestén læsning pr. overlevendesamme digest for forskelligt indhold er beregningsmæssigt umuligt
3 — bytesde faktiske bytesén ekstra læsning pr. parforsikring: beviser lighed uden overhovedet at stole på hashen

Forfiltreringen efter størrelse er ikke en optimering, der er nice at have — det er det, der gør indholdssammenligning overkommelig. Et mappe med 5.000 fotos kan indeholde 50 klynger, men kun nogle få hundrede filer når nogensinde hashingtrinnet.

Hvad det bevidst ikke gør

Ingen næsten-dubletter: det samme foto i to opløsninger eller to kvalitetsniveauer er forskellige bytes og markeres ikke — det problem kræver perceptuel billedhashing, som er et andet værktøj. Ingen sletning: en webside, der sletter filer på disken, ville være en sikkerhedsfejl, ikke en funktion; i stedet får man tjeklisten. Ingen sky: intet uploades, hvilket også betyder, at intet kan scannes uden at filerne læses.

FAQ

Hvorfor er den første fil markeret “behold”? — en fil i klyngen skal overleve; den første efter valgrækkefølgen er et deterministisk, kedeligt valg. Ændr et afkrydsningsfelt, før tjeklisten eksporteres.
Hvad er “spildt plads”? — størrelsen af hver kopi ud over den første i sin klynge, summeret over alle klynger: de bytes, man ville få tilbage ved at slette ekstraerne.
Kan SHA-256 tage fejl? — ikke i praksis: en kollision ville kræve et bevidst konstrueret par og er aldrig set for SHA-256. Trin 3 fjerner selv den teoretiske tvivl.