Tool zum Aufspüren und Löschen mehrfach vorkommendenr Dateien gesucht

Hinweis: In dem Thema Tool zum Aufspüren und Löschen mehrfach vorkommendenr Dateien gesucht gibt es 8 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo zusammen,


    auf meinem Rechner (OpenSuse 13.2 64 Bit mit Gnome) haben sich um Laufe der Zeit eine Menge doppelt und mehrfach vorhandene Dateien angesammelt. Jetzt will ich etwas aufräumen und jeweils nur eine behalten. Welche der identischen behalten wird und wo die steht ist egal, Hautsache eine bleibt übrig. Zum FINDEN mehrfacher Dateien habe ich mir im Internet ein Kommando zusammengesucht, das funktioniert auch. Leider stellt sich jetzt heraus dass es einfach zu viele sind als dass ich mit manuellem Löschen daran gehen könnte. Jetzt suche ich eine Anwendung, ein Tool mit dem ich mehrfach vorkommende Dateien aufspüren und LÖSCHEN kann.
    Ich habe zwar schon Einiges dazu gelesen (fslint, dupeguru) hoffe aber dass ich hier einen fundierten Rat finde.


    Danke und Grüße, Erich
    .

    Für den Inhalt des Beitrages 107951 haftet ausdrücklich der jeweilige Autor: erich_s

  • hallö, hallö,


    schaue Dir mal Beyond Compare an. Verwende ich seit über 10 Jahren.
    Es kann mehr als 2 Versionen vergleichen und auch zusammenführen.


    ist auch sehr praktisch beim Vergleich von Ordnern + Medien


    Es gibt auch Versionen die mehr als 1 Betriebssystem abdecken.
    https://www.scootersoftware.com/
    Falls Du eine Rechnung mit MwSt brauchst:
    http://www.beyondcompare.de/


    hast vor dem Kauf 4 Wochen Zeit zum testen...

    nutze das Camäleon seit 10.2 darf ich trotzdem etwas fragen ?

    Für den Inhalt des Beitrages 107976 haftet ausdrücklich der jeweilige Autor: neuguin

  • Code
    find $vzfd -type f -print0 | xargs -0 md5sum | sort -k1,32  | uniq -w32 -d --all-repeated=separate > $outfd.lis

    Die Anregungen dazu habe ich von Dr. Luthardt.de
    Wie gesagt das Finden funktioniert, mir fehlt noch der Teil zum Löschen, manuell (rm) ist das zu zeitaufwendig. Ideal wäre ein Tool das die mehrfachen Dateien anzeigt und man diejenigen, die gelöscht werden sollen ankreuzt (z.B. drei von vier) und die markierten dann löscht.


    Gruß, Erich

    Für den Inhalt des Beitrages 108074 haftet ausdrücklich der jeweilige Autor: erich_s

  • Das werde ich mal versuchen.
    (Was ein wenig dauern wird).


    Ich halte die Aufgabe nicht für so ganz trivial, da mir ad hoc folgenden Probleme dazu einfallen:

    • Da es sich heutzutage um sehr, sehr viele Dateien und Verzeichnisse handeln kann,
      ist eine Art Chunking unerlässlich. (Also z.B. 1000 Dateien verarbeiten, Message an GUI senden, weitermachen...)
    • Es gibt ziemlich viele DEs.
      Im einfachsten Falle nimmt man schlicht "dialog", was dann in der Konsole mit Ncurses GUI läuft.
      Oder unter KDE oder Plasma mit kdialog, unter Gnome mit ..... usw.
    • Alternativ wäre gleich den ganzen Kremple in Python oder dergleichen zu schreiben. Was dann aber halt nicht mehr nur GNU- Tools verwendet. (Und natürlich ein wenig mehr Programmierarbeit fordert)
    • Was passiert mit Dateien, die sich während des Laufes ändern?
      Das mögen irgendwelche temporären Dateien irgendwelcher Programme, oder auch Konfigdateien sein, oder halt vom User selbst geänderte, und, und, und. Da ist also irgendeine Trackingmethode für Dateiänderungen fällig. Es ist besser solche Dateien auszusortieren, statt anzunehmen, es könne nichts passieren. Was schief gehen kann, geht schief. Punkt.

    Ich habe mal angefangen mit deiner Pipe ein Bashscript dafür zu schreiben.
    Mich würde aber schon interessieren, wie du zu obengenannten Problemen stehst.

  • ist etwas zeitaufwendig über jedes File pauschal eine md5 zu bilden, dies sollte nur bei Files mit selber Größe erfolgen, und links sollten evtl. auch berücksichtigt / ausgenommen werden.


    das Shellscript in meinem link oben berücksichtigt dies evtl. schon.

    honi soit qui mal y pense :: lärnt L.i.n.u.x zu buchstabieren

    Für den Inhalt des Beitrages 108102 haftet ausdrücklich der jeweilige Autor: TuxSv748

  • Dein Link verweist auf ein Perl- Script.
    Nicht auf ein Shell- Script.
    Was zwar egal ist, aber angemerkt sein will.


    Die Performance halte ich bei dieser Aufgabenstellung für eher nebensächlich.
    Man macht dieses Aufräumen nicht ständig.
    Vor allem will und muss der User aber ja selbst entscheiden, ob und was gelöscht werden soll.
    Und da es deshalb mit GUI interaktiv laufen muss, ist Performance völlig nebensächlich.
    Heute wird jeder Rechner genügend Nachschub liefern.


    Man muss das Script nur sorgfältig schreiben.
    Eben nicht auf einmal alle Dateigrössen bestimmen, sondern z.B. pro Directory.
    Und nachdem das erste Verzeichnis gelesen ist, kann schon eine weitere Funktion das Filtern nach konfigurierbaren Parametern beginnen.
    Sind ein paar Verzeichnisse gelesen, kann eine weitere Funktion schon mit der gefilterten Liste das Hashen beginnen.
    Und sind die ersten Duplikate erkannt, kann die GUI bereits ein Löschauswahlmenu anzeigen und eine Löschliste erstellen.
    durchsuchen.
    Im Wesentlichen werden alle Aufgaben durch Hintergrundprozesse erledigt, während der Vordergrundprozess nur die GUI bedient.
    Natürlich muss dafür eine gewisse IPC (InterProcessCommunication) implementiert werden.


    Zumindest habe ich mir das bislang so zusammengereimt.


    Aber selbst wenn man da was Hübsches gebastelt hat, wird die Aufgabenstellung selbst damit nicht gelöst.
    Jedenfalls nicht vollständig.


    Bilder, Audio und somit auch Video- Dateien kann man damit nicht zuverlässig auf Gleichheit prüfen.
    Dort führt jedwede Änderung -sei sie auch noch so klein- zwingend zur absoluten binären Verschiedenheit.
    Was ist z.B. mit einem mp4, das man via Webserver mit HTTP bereitstellen möchte?
    Die Spec für das Pseudostreaming verlangt, dass am Anfang eine bestimmte Headerstrukur steht, samt einem periodisch wiederkehrender Marker, damit der Webserver das Video bequem in einzelne Chunks zerhacken kann. Sonst sind die beiden Dinger aber völlig gleich.
    Werden aber garantiert nicht als gleich erkannt.
    Was ist mit einem von wav nach ogg konvertiertem Krach? Binär drastisch anders und Ogg viel kleiner. Für den User immer noch gleich.


    Man bräuchte also für Bilder und für Audio Heuristiken, die formatübergreifend Ähnlichkeiten finden kann.
    Ein sehr ambitionierter Ansatz.


    Das Ding ist also ganz und gar nicht trivial.
    Und Performance die letzte Sorge.


    Nachtrag: Selbst bei Textdateien gibt es dieses Problem: Speichere einen Text als LibreOffice Dokument und als PDF ab.
    Man müsste also auch alle möglichen Textdateien erst einmal nach rein Text konvertieren, dann auf Gleichheit prüfen, um entscheiden zu können, was nun gleich sei.
    Aber auch hier ist die Heuristik ganz und gar nicht trivial. Wie unterscheidet sich eine sinngebende Absätze trennende Leerzeile von einer typographisch überflüssigen, die vielleicht erst die Konvertierung erzeugt hat?

  • Also ich habe als Bestandteil des Betriebssystems (OpenSuse 13.2) fdupes gefunden, das reicht völlig für meine Zwecke:
    Erst mal schauen, was vorhanden ist

    Code
    fdupes -r -S -m /home/Archive


    Dann das erste Vorkommen des Duplicates ohne Nachfrage löschen

    Code
    fdupes -r -d -N /home/Archive

    Ohne das -N bekommt man die Duplicates mit einer Ordnungsnummer angezeigt und kann sich entscheiden welcher gelöscht werden soll.

    Für den Inhalt des Beitrages 108145 haftet ausdrücklich der jeweilige Autor: erich_s