Duplikate eliminieren / Datenbereinigung

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Hi!
    Hab nach zehn Jahren eine Festplatte die ziemlich vollgeräumt, durcheinander
    und viele Dateien: Fotos, Texte, Videos auch doppelt sind.
    Welche Software würdet Ihr empfehlen um die Sache ein wenig schlanker
    zu machen sprich doppelte zu löschen, leere ordner.
    Hab, Ubuntu Linux, Mac OSX und Vista an Betriebssystemen.
    Am besten Gratis, wobei es mir jedoch mehr auf die Zuverlässigkeit ankommt,
    also wirklich nur die doppelten Dateien gelöscht werden und mehr nicht.

    Danke!

    Tril

  • Leere Verzeichnisse finden geht mit "find" recht einfach:

    Code
    find -type d -empty


    Löschen geht auch gleich:

    Code
    find -type d -empty -exec rmdir {} \;

    Das muss eventuell ein paar Mal wiederholt werden, weil durch das Löschen leerer Verzeichnisse ja das übergeordnete Verzeichnis leer werden kann.

    Zum Finden doppelter Dateien wäre mir spontan mal eingefallen, von allen in Frage kommenden Dateien MD5-/SHA1-Hashes zu berechnen und dann nach doppelten Hashwerten zu suchen. Es gibt ein Tool namens FSlint (ist in den Ubuntu-Repositories vorhanden), das ich zwar noch nie verwendet habe, laut FAQ aber genau meine Idee in einer etwas ausgefeilteren Art und Weise umsetzt.

    2 Mal editiert, zuletzt von Paulchen (9. August 2012 um 13:22) aus folgendem Grund: Hinweis zu "find" hinzugefügt

  • Danke
    Berechnet FSlint die doppelten Dateien automatisch, sprich ohne besondere Einstellungen mit MD5-/SHA1-Hashes oder
    muss man davor etwas einstellen, damit sicher, ganz sicher sicher, nicht mehr gelöscht wird als was wirklich mehrmals vorhanden ist.
    Ich habe schon Tests gemacht. Und unter Auswahl alle außer ältesten gewählt.
    Ich schiebe die Dateien auf eine zweite Festplatte unter MacOSX die (u.a.) für Ubuntu formatiert ist. Darunter sind viele Dateien die so ein . (Punkt)
    davor haben. Alle Dateien befinden sich auf einer 3T externen festplatte MyBook Live, die ich jedoch nicht auf Ubuntu mountain kann. Sollte schon gehen, habe
    schon recherchiert aber es ist mir zu kompliziert, so in Portionen läufts auch gut. Die .Dateien sind mir etwas merkwürdig. Sollte eigentlich nur Schrott sein oder?
    Das ganze stresst mich ein wenig, weil nichts wegkommen sollte. Kann ich da mit FSlint ganz entspannt sein?
    Die größte Arbeit kommt dann noch das ganze zu ordnen.. :shiner:

  • @ Kampi Funkt es auch unter Mac oder Windows.

    nie getestet, aber so lange du die dateinamen irgendwie per stdin rein bringst sehe ich keine probleme. du kannst es natuerlich auch umschreiben dass es mit os.walk durch geht. ich verwende keine externen libs, alles was benoetigt wird sollte bei einer normalen python installation dabei sein...
    [edit]os.stat().st_ino liefert unter win bei mir immer 0L. den sortierteil kannst du aber einfach raus nehmen, ich habe mir davon nur etwas geschwindigkeit bei rotierenden platten erwartet, traegt aber sonst nichts zur funktionalitaet bei[/edit]


    Vorausgesetzt es ist sicher sicher sicher. ;)

    files werden nur read-only geoeffnet, what could possibly go wrong? ;) es wird ja auch nichts automatisch geloescht. wie gesagt ist das lange her, aber der output orientiert sich an fslint(?) (damit ich beim testen schnell diffen konnte). was du mit der liste machst ist dann wieder dein ding.

    es war nur ein schneller hack um die C-implementierung eines freundes zu schlagen ;) und die github-seite hat ein paar links zu programmen die interessant sein koennten, darum hab ich drauf verwiesen.

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

    Einmal editiert, zuletzt von Kampi (10. August 2012 um 15:39)

  • nie getestet, aber so lange du die dateinamen irgendwie per stdin rein bringst sehe ich keine probleme. du kannst es natuerlich auch umschreiben dass es mit os.walk durch geht. ich verwende keine externen libs, alles was benoetigt wird sollte bei einer normalen python installation dabei sein...
    [edit]os.stat().st_ino liefert unter win bei mir immer 0L. den sortierteil kannst du aber einfach raus nehmen, ich habe mir davon nur etwas geschwindigkeit bei rotierenden platten erwartet, traegt aber sonst nichts zur funktionalitaet bei[/edit]

    files werden nur read-only geoeffnet, what could possibly go wrong? ;) es wird ja auch nichts automatisch geloescht. wie gesagt ist das lange her, aber der output orientiert sich an fslint(?) (damit ich beim testen schnell diffen konnte). was du mit der liste machst ist dann wieder dein ding.

    es war nur ein schneller hack um die C-implementierung eines freundes zu schlagen ;) und die github-seite hat ein paar links zu programmen die interessant sein koennten, darum hab ich drauf verwiesen.

    Kingt gut. Würdest Du sagen, dass Deine Software besser und sicherer ist als FSlint?

    best,
    Tril
    P.S. Bin ehrlich gesagt, mit meinem Know How nicht so weit Vieles davon zu verstehen. Angefangen bei der Installation:shinner:

  • Kingt gut. Würdest Du sagen, dass Deine Software besser und sicherer ist als FSlint?

    es war in meinen testcases ein wenig flotter und ich fand den fslint code nicht sonderlich schoen lesbar. ob mein 15-min hack da viel schoener ist wage ich zu bezweifeln. ich wollte einfach etwas haben mit dem ich ein wenig rum spielen kann (inodes sortieren ja/nein, wieviel MB liest man am besten im schnitt, wann faehrt man schwere geschuetze auf und hashed das ganze, nimmt man die file size als key mit rein, ...)

    was meinst du mit "sicherer"? sicherer dass es keine duplikate uebersieht? in dem fall waren sie beide gleich gut (leerer diff der outputs). sicherer dass es dir keine files loescht? ich oeffne wie gesagt die files readonly und loesche nie. so wird es auch fslint machen, ich habe aber keine lust es zu installieren und nachzuschauen.

    Bin ehrlich gesagt, mit meinem Know How nicht so weit Vieles davon zu verstehen. Angefangen bei der Installation:shinner:

    tja, vielleicht waere ein klickibunti doch die bessere wahl fuer dich? oder nimm fslint! die sind sicher viel netter und freuen sich ueber fragen :shinner:

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • es war in meinen testcases ein wenig flotter und ich fand den fslint code nicht sonderlich schoen lesbar. ob mein 15-min hack da viel schoener ist wage ich zu bezweifeln. ich wollte einfach etwas haben mit dem ich ein wenig rum spielen kann (inodes sortieren ja/nein, wieviel MB liest man am besten im schnitt, wann faehrt man schwere geschuetze auf und hashed das ganze, nimmt man die file size als key mit rein, ...)

    was meinst du mit "sicherer"? sicherer dass es keine duplikate uebersieht? in dem fall waren sie beide gleich gut (leerer diff der outputs). sicherer dass es dir keine files loescht? ich oeffne wie gesagt die files readonly und loesche nie. so wird es auch fslint machen, ich habe aber keine lust es zu installieren und nachzuschauen.

    tja, vielleicht waere ein klickibunti doch die bessere wahl fuer dich? oder nimm fslint! die sind sicher viel netter und freuen sich ueber fragen :shinner:

    Es ist bestimmt ein spannender Code. Ich habe auch so meine graphentheoretischen Gedanken dazu, schließlich habe ich ja Algodat1 hinter mir.:coolsmile:

    ad sicherer: Die Unsicherheit steigt bei mir wenn ich bei FSlint, "Alle außer Ältesten" wähle, eine lange Liste an Dateien markiert wird und ich als nächstes Löschen zu klicken habe. Dass doppelte weg sind ist gut, nur der Rest, also die eine älteste Datei soll bleiben, also nichts wegkommen.
    Wird schon so sein, sonst wäre es ja beim Ubuntu Softwarecenter ja nicht dabei.

    Nochmals vielen Dank!!!:)

    3 Mal editiert, zuletzt von Quintilian (10. August 2012 um 18:32)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!