Ich habe auf meinem Computer ein immer größer werdendes Dateienchaos mit unzähligen Duplikaten. Grund dafür ist unter anderem, dass auf dem Computer von verschiedenen Personen gearbeitet wurde und auch noch ein Totalausfall mit gebrochenem Bildschirm dazwischen kam. Ich hatte die Firma Expert damit beauftragt, die Dateien auf dem defektem Computer zu retten. Anschließend war das Chaos perfekt. Einen Großteil der Duplikate konnte ich bereits mit Anti Twin beseitigen, jedoch sind immer noch ca. 55 GB an Dateien vorhanden, wovon wahrscheinlich die Meisten bis auf kleine Änderungen identisch sind. Diese Dateien müsste ich nun auch noch herausfiltern. Mit einem Vergleich zu Arbeiten erscheint bei einer Menge von ca. 15.000 Dateien undiskutabel. Kann mir hier vielleicht jemand weiterhelfen und einen Tipp geben, wie ich das am besten machen könnte?
Moin,
bis auf kleine Änderungen identisch
da kennt die EDV leider keinen Unterschied - ungleich heißt ungleich.
Ich bin zwar kein Maßstab, möchte aber doch mal aufführen, was ich so an Daten habe: 410 MB in 1500 Dateien, in denen aber wirklich alles Wichtige digital vorliegt. Da frage ich mich schon, ob Ausmisten helfen könnte.
Crashes lassen mich kalt, weil ich regelmäßig Backups von den Daten fahre. Dabei wird zwar mehr als diese 1500 Dateien gesichert, weil ich das komplette Laufwerk (ein eigenes für Daten) einbeziehe, das schadet aber auch nicht.
Gruß
Ralf
Hallo!
AntiTwin ist schon recht gut. Es findet auch in deinem Datensatz absolut identische Dateien ohne viel Aufwand. Wenn es Dateiinhalte nicht auf absolute Gleichheit, sondern auf Ähnlichkeit untersuchen soll, dann wird es verständlicherweise extrem langsam. Und der Erfolg ist auch zweifelhaft. Zwei Briefe mit unterschiedlichem Inhalt, aber gleichem Briefkopf mit Bild sind sich z.B. sehr ähnlich, während bei manchen Dateitypen eine winzige Änderung schon zu einem stark veränderten Dateiinhalt führt.
Ich kann mir vorstellen, daß du sehr viele Dateien hast, deren Inhalt nicht mehr absolut gleich ist, aber deren Dateiname nahezu unverändert ist. Das heißt, du könntest alle Dateien auflisten lassen, und dann auf solche mit gleichem Namen / Anfang des Namens suchen lassen. Welche davon dann die letzte brauchbare (was nicht gleich der neuesten) ist, ist so eine Sache.
Mit etwas Glück wurden die Zeitstempel der Dateien von der Firma beim Retten beibehalten, mit etwas Pech tragen jetzt alle Dateien den Zeitstempel vom Tag der Datenrettung.
Ich rate dir aber auf jeden Fall, die geretteten Dateien nicht anzufassen, sondern davon eine Kopie zu machen, in der du dann ordnung schaffst. Denn garantiert wirst du aus Versehen mal ne falsche Datei löschen.
Und dann: Es ist ja nicht so, dass das Chaos erst mit dem defekten Computer entstanden ist. Es war vorher schon da, nur bist du jetzt dazu gezwungen, dich damit auseinanderzusetzen.
Für die Zukunft solltest du überlegen, wie man das besser handhaben kann. Lösungen gibt es dazu einige, allerdings kommt das auch sehr darauf an, was für Dateien das sind.
Schreib dir doch ein Programm (zB in C/C++) was genau die Eigenschaften umsetzt, die du brauchst bei deinem Arbeitspensum. Es ist auf jeden Fall besser, sich in C einzuarbeiten (oder halt eine andere Hochsprache zB Java…) als die Zeit mit Ausmisten zu verbringen.
Ich schreib mir auch grad was, was Verben erkennt in JAVA, weil ich keine Lust hab, 30.ooo Zeilen in Excel durchzutacken und dann zu kategorisieren. Wird bestimmt nicht 100%-ig, aber lernen werde ich bei dem programmieren mehr als beim sortieren!
Im Notfall kannste das auch jemand machen lassen, aber dann musst du ihm (mit Lastenheft) wahrscheinlich oft was neues sagen, a’la: Achso, und wenn der Dateistempel gleich ist und die ersten 10 Byte, dann bitte dies & das - das geht alles mit programmieren ganz leicht!! Fast kinderleicht.
Ich fürchte, du bist da kein Maßstab. Jeder, der in den letzten 15 Jahren Fotos von seinen aufwachsenden Kindern gemacht hat, ist in wenigen Tagen locker drüber. Die Definition von „wichtig“ ist situationsabhängig.
Ja, das hilft immer, hat aber auch seine Grenzen. Wieder das Beispiel Kinderfotos. Da wirft man sinnvollerweise recht frühzeitig die Verwackler raus. Aber dann bleiben diese Daten oft über lange Zeit wichtig und werden folglich auch beim Ausmisten nicht weggeworfen.
wie lang schreibst schon du daran? Was bedeutet es, wenn dein Programm Verben erkennt? Ist das ein Datenabgleich gegen eine Liste mit bekannten Verben? Wie unterscheidest du dann Worte, deren Verb gleich dem Substantiv ist? Oder gebeugte Verben in ungewöhnlichen Zeitformen?
Oder ist das irgendwie eine linguistische Erkennung? Wie löst du dann all die ganzen Grenzfälle der deutschen Sprache?
Wenn du deine Liste mit 30000 Zeilen einzeln durchgehst und für jede Zeile innerhalb von 3s eine manuelle Entscheidung triffst, dann bist du nach 25h durch. Durch geschicktes Filtern oder Sortieren kann man das eventuell verkürzen.
Wenn du an deinem Java-Programm mehr als 25h sitzt, ist es schon schlechter.
Worauf ich hinaus will ist, dass hier
auf der naiven Vorstellung basiert, die man in Science Fiction Filmen bekommt. Ein Nerd setzt sich an eine Alientechnologie und hat innerhalb von 10 Minuten den tödlichsten Computervirus des Universums dafür programmiert.
Nach meiner Erfahrung sind einmalig zu lösende Probleme häufig schneller von Hand gelöst als programmiert. Das ist insbesondere der Fall, wenn es wie in der Eingangsfrage beschrieben ist. Alles ist ein bisschen unklar, manche Dateien sind exakt gleich, einige sind ein bisschen anders. Wie willst du da automatisiert rausfinden, welche der beiden leicht unterschiedlichen Dateien die richtige ist?
Ja, 55.000 Dateien zu sichten ist bestimmt kein Spaß. Aber auch hier wird es sicher irgendeine Struktur geben, die da dem Menschen hilft. Und es hilft dem Menschen zu verstehen, dass eine geregelte Dateienablage, eventuell mit einer Versionierung im Dateinamen hilfreich ist.
Hi Preston, ich arbeite an einer linguistischen Lösung, die ich iterierend optimiere. Also ich fange an mit Worten die auf „en“ enden („en,“ …) und mache dann viele Bedingungen als parser. Hab mir ein VokabelQuiz gebaut in Java mit u.a. einem Langescheid-Datensatz dran und nun möchte ich natürlich auch gern Verben extra quizzen können, dann ein andermal Substantive oder Satzbaugruppen usw. und die will ich dann mit meinem Parser erkennen können. Für die erste Version hab ich vllt. 1h (alleine für den Parser) gebraucht und wenn mir ein Fehler dabei auffällt (es muss nicht fehlerfrei sein bei mir) baue ich weiter. Ich meine nicht, dass ich dafür mehr als 25h brauchen werde in Summe! „Nicht fehlerfrei“ heißt bei mir, dass wenn er ein paar Verben nicht findet, dann ist es nicht so schlimm und wenn er ein paar andere Datensätze zB Subst. bei Verben quizzen untermischt ist auch nicht schlimm.
Das darf sich @Wildblumen sein Programm natürlich nicht so frei leisten!!!
Daher an WIldblumen nochmal der Hinweis: Mach einen Test als Variable(boolean check) in das Programm, dass nicht gleich scharf gelöscht wird sondern erstmal angezeigt wird, was er machen würde und erst wenn dir das gefällt, stellst du den Haken ab und er arbeitet scharf!!! Wenn du willst, kannst du von mir ein selbstgeschriebenes Dateisync-/Versionier- und Snapshot-Tool in Java haben, dann hast du schon eine Oberfläche mit dem Checkhaken drin und den Programmablauf (die GUI-Oberfläche)dazu: Also schon 80% dann erledigt und du kannst dir dann deinen Parser dran bauen - der bei Java dann langsamer ist. Das ist aber egal, du kannst das Programm ja über Nacht laufen lassen, wenn dir die ersten checks gefielen… Mein Tool mit Quellen ist als jar grad mal 37kB groß. Wer will kann gerne die Quellen haben. Hab sie bisher nicht veröffentlicht, weil ich mein github Passwort mir nie merken kann… … irgendwann in den nächsten 2 Jahren wollte ich aber auch ersthafter mal an CVS ran.
Mir ist immer wichtig, dass man seine erzeugten (mglw. sehr speziellen) Probleme auch mglst. selber lösen kann… Für Standard-Probleme kannst du auch Standardlösungen nehmen!
Du wirst bei Fremdprogrammen immer danach sagen, dass es nicht optimal war bei deiner speziellen Aufgabe!
Und Preston ich finde nicht, dass 25h stupide Arbeit gleich gut sind, wie 25h programmieren. Da du dabei viel hinzulernst und beim tackern lernst du nichts. Würde mir inzwischen für viele Dinge da ernsthaft selbst eine Lösung bauen. Den Filesync oben hab ich mir gebaut, um den java Arbeitsplatz vor größeren CodeÄnderungen zu sichern…
Das einzige was leider mein LinguParser nie hinkriegen wird, was ich aber gern hätte, ist dass er Vokabeln nach schwierig / leicht sortiert und ich dann zB Lektion=Schwierigkeit 8 von 10 abarbeiten kann (Bsp: make=Lvl1, investigate=Lvl-7…), da es dafür KI und Datensatzvergleiche bräuchte und da streiche auch ich wegen Programmierdauer (in Freizeit) erstmal die Segel… vielleicht mach ich das, wenn ich in Rente bin - man muss ja Pläne für die Zukunft (bei schlechtem Wetter) haben.
VG & viel Erfolg euch von Dani
Moin,
Bildersammlungen unterscheiden sich seit Erfindung der Digitalkamera nicht großartig von Müllkippen, deshalb habe ich die schon frühzeitig von wirklich wichtigen Daten getrennt. Abgesehen davon dürften Deine vielen anderen Nutzer kaum Bilder mit den gleichen Namen produziert haben, das kann also nicht die Wurzel des Übels sein.
Gruß
Ralf
Du meinst wie im Verb Ärztinnen? Oder im Verb vielen (wie in vielen Dank)?
Hm. Dir ist bekannt, dass die letzten 20% der Funktionen üblicherweise 80% der Arbeitszeit kosten? Deine erste Stunde beschäftigst du dich ja auch mit dem offensichtlichen, wie du schon schriebst. Und jetzt kommen die Grenzfälle, wie du schriebst. Nach meiner Erfahrung sind das diese Grenzfälle, die dir deine Zeit fressen werden.
Hm. Dann fehlen die halt in deinem Quizz. Ist vermutlich wirklich nicht schlimm, wenn die Anzahl verbleibender Verben hoch genug ist.
Ist das so? Das werden deine Quizzteilnehmer aber anders sehen. Sowas ist ganz schlecht für die Akzeptanz, weil man eventuell Fehler angezeigt bekommt, die man nicht selbst verursacht hat. Sowas wird schnell als unfair empfunden.
Ist es wahr? Du kannst Sprachparser in 1h schreiben aber bist nicht in der Lage einen Passwortmanager zu bedienen? Und du schreibst super duper sichere und schnelle zur automatischen Dateiversionierung und planst in den nächsten 2 Jahren Quelltextversionierung anzuschauen?
Sorry, das kann ich nicht ernst nehmen.
Manchmal muss man aber auch einfach nur den Job fertig kriegen. Dein Programm ist vielleicht nach 25h fertig, wahrscheinlich eher nicht. Und fehlerfrei ist es dann auch nicht, wie du schreibst. Das mag für deinen Anwendungsfall alles anders sein, aber so wie ich den Frager verstehe, geht es hier nicht um ein Hobbyprojekt wo Fehler und Zeit bis zum Ergebnis egal sind.
Darum geht es nicht. Ich wollte allein deiner pauschalen Aussage widersprechen, dass alles Wichtige im Leben auf 2 IOMEGA ZIP Disketten passen. Und auch Bilder ändern sich gern mal, etwa weil man Bilder beim Betrachten dreht oder zuschneidet oder rote Augen entfernt. Nicht sehr wahrscheinlich, dass das zum Problem beiträgt, aber auch nicht gänzlich unwahrscheinlich.
Vielen Dank für Ihre Bemühungen. Leider ist der ideale Tipp nicht dabei.
Preston - ich habe ja beide Versionen englisch und deutsch als Datensatz zum Parsen.
Und mir ist es herzlich egal, ob ich hier ernst genommen werde. Mein Selbstwert hängt nicht davon ab.
Wenn du willst, schicke ich dir meinen Filesync mit Quellen, dann kannst du es lesen. Ist spannender m.E. als ein Krimi…
Ist wirklich auch so: Programmieren macht mir mehr Spass als KeePass-Manuals lesen… daher und weil ich bisher niemand beglücken wollte /konnte, hab ich mein github eher noch im WInterschlaf - hab aber vor dass in den nächsten 2 Wintern mal zu ändern…
Ist git nicht auch ein Werkzeug, um Dateichaos zu verhindern?
Guter Tipp, aber ob das @Wildblumen weiterhilft? Ich schreibe mir auch für alles, was ich mehr als zwei mal mache, ein Bash-, Awk-, Perl- oder Python-Skript. Aber ich würde auch nicht bei wer-weiss-was nachfragen, wie ich mein Dateichaos aufräumen kann.
git ist da wohl eher nicht das beste… wers einfach will…
Würde eher: Midnight / Total Commander oder ähnliche Tools empfehlen, wenn man auf fertige Lösungen setzen will…
https://de.wikipedia.org/wiki/Liste_von_Dateivergleichsprogrammen
Vielen Dank für den Tipp mit der Liste! Ich hoffe, dass ich hier die richtige Software finde.