# Doppelte Dateien filtern

## xtrace

Hi,

vielleicht kann mir hier wer weiterhelfen.

Ich habe folgendens Problem:

Eine Festplatte mit ca. 1,5 TB Daten. Diese setzen sich aus verdiedenen Datentypen zusammen.

Nun habe ich das Problem, dass manche Dateien doppelt sind und ich diese gerne raussuchen möchte. Dabei dachte ich zunächst daran, den Dateinamen zu vergleichen. 

Da dann allerdings auch der Inhalt unterschiedlich sein kann, müsste ich auch die Größe und evtl. auch die Checksumme vergleichen.

Mir würde eine Dateiliste reichen, die die doppelten Dateien auflisten würde.

Kann man dazu ein Script schreiben? Womit wäre es am leichtesten zu bewerkstelligen? Bash, perl, python ? Fertige Suchprogramme waren bisher unzuverlässig.

Danke  :Exclamation: 

Grüße

----------

## frostschutz

emerge fdupes

und wenn du das unzuverlässig findest, solltest du vielleicht mal ausführen, wie du das meinst.

----------

## l3u

```
find -type f -print0 | xargs -0 md5sum | sort
```

spuckt zumindest mal ne Liste aller Dateien mit MD5-Summe aus, sortiert nach eben dieser. Die Dateien, die untereinander stehen (mit der selben Prüfsumme) sind aller Wahrscheinlichkeit nach (inhaltlich) identisch.

Wobei sich derjenige, der fdupes geschrieben hat, höchstwahrscheinlich tiefgreifendere Gedanken über die Thematik gemacht hat ;-)

----------

## py-ro

Die dup tools machen im ersten Durchgang meist nur eine Prüfsumme eines Teils der Datei, sonst müssten alle Dateien komplett gelesen werden.

Py

----------

## frostschutz

erstmal wird die größe verglichen (was verschieden groß ist kann nicht gleich sein), und dann nur noch die gleich großen dateien miteinander verglichen. ob fdupes das dann durch teilweise lesen oder mit kompletthashes macht... gute frage  :Wink: 

so oder so ist es um Welten effizienter als find xargs md5sum...

----------

## l3u

Sag ich ja ;-)

 *fdupes.c wrote:*   

> TODO: Partial sums (for working with very large files).

 

macht also keine Teilweisen Prüfsummen.

----------

## xtrace

Ich habe es nun folgendermaßen gelöst:

```

find /.../ -type f -print0 | xargs -0 md5sum | sort | uniq -w32 -D >> bla.csv

```

Nun muss ich mir nur noch überlegen, wie ich die Daten weiter auswerte....

Danke!

----------

## mv

find_double aus mv_perl (aus dem mv overlay) findet Duplikate, ohne Prüfsummen zu berechnen: Die Dateien werden nur so weit gelesen, wie zu ihrer vollständigen Sortierung nötig ist.

Als Nebenwirkung können optional sogar "identische" Dateien gefunden werden, bei denen eine nur länger ist als die andere.

----------

