Dublet-filfinder — samme bytes betyder dublet, uanset hvad navnet siger
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.
1. Vælg filer
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.
2. Scan
3. Dublet-klynger
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
Trin
Sammenligner
Omkostning
Hvorfor
1 — størrelse
filstø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-256
fuld indholds-digest
én læsning pr. overlevende
samme digest for forskelligt indhold er beregningsmæssigt umuligt
3 — bytes
de faktiske bytes
én ekstra læsning pr. par
forsikring: 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.