ottttto
Anmeldungsdatum: 22. März 2008
Beiträge: 1
|
bodi hat geschrieben:
Wegen der Abfrage welche Datei gelöscht werden soll, wie wäre einfach eine weitere Option z.B. "-d -r" (delelete random) dass wäre dann das jetztige "-d" und ohne "-r" wäre es dann so wie unten beschrieben mit Auswahl. Denn selbst bei 500 Dateien wäre eine Auswahl welche gelöscht werden soll einfacher und schneller als alles von Hand über die Ausgabe zu suchen und zu löschen 😉
Ich habe die Funktion mal eingebaut (die Option -d funktioniert wie bisher, mit der Option -a oder --ask wird gefragt, welche Datei(en) BEHALTEN werden soll(en).) http://ubuntuusers.de/paste/134288/ Viel Spaß damit!
|
Darkchill
Anmeldungsdatum: 15. November 2005
Beiträge: 158
|
Hi, als erstes muss ich sagen, dass das PerlSkript echt super ist. Schnell zuverlässig - einfach klasse. Nun habe ich aber das Problem, dass ich mehrere Backup Ordner habe und natürlich die Dubletten finden und löschen möchte. Blöd ist nur, dass ich dann per Hand danach mir die einzelnen wieder rauspicken und verschieben muss. Es müsste also ein Funktion geben, die Dublette in einen Ordner kopiert und dann die übrigen alle löscht, sodass alle gefundenen Dubletten sich nacher einmalig in einem Zielordner befindet. Der Dateiname sollte dann dem kürzesten der Dubletten entsprechen. Das wäre sinnvoll wenn es sich um MP3s handelt deren kryptisches Zeichennwirrwarr man entfernt hat. Und natürlich muss man vorher prüfen ob in dem "Zielordner" schon eine Datei gleichen Namens existiert, dann einfach eine (2) usw. dranhängen. Ich würde die Änderungen ja gerne selbst einprogrammieren, leider fehlt mir jegliche Kenntnis. Ich denke, es ist realtiv simpel umsetzbar. Wäre schön wenn das Programm um diese Funktion erweitert werden könnte,
|
audax
Anmeldungsdatum: 15. September 2006
Beiträge: 1253
|
Nicht schön, aber selten: http://paste.pocoo.org/show/37906 Hat bei meinen Tests immer geklappt 😀
|
LordNoxx
Anmeldungsdatum: 16. Juni 2007
Beiträge: 358
|
Super skript...Danke!
Hat mir sehr geholfen. ☺
|
Red_Radish
Anmeldungsdatum: 7. September 2007
Beiträge: 770
|
es gibt fdupes in den Ubuntu-Quellen:
Package: fdupes
[...]
Description: Identifies duplicate files within given directories
FDupes uses md5sums and then a byte by byte comparison to find duplicate
files within a set of directories. It has several useful options
including recursion.
Original-Maintainer: Adrian Bridgett <bridgett@debian.org> da brauch man keine langsamen Skripts schreiben 😉
|
Sid_Burn
Anmeldungsdatum: 23. Oktober 2004
Beiträge: 2159
|
radieschen schrieb: es gibt fdupes in den Ubuntu-Quellen:
Package: fdupes
[...]
Description: Identifies duplicate files within given directories
FDupes uses md5sums and then a byte by byte comparison to find duplicate
files within a set of directories. It has several useful options
including recursion.
Original-Maintainer: Adrian Bridgett <bridgett@debian.org> da brauch man keine langsamen Skripts schreiben 😉
Eigentlich wollte ich in diesem Forum hier nichts mehr schreiben da es aber mein Skript Betrifft... Wie heißt der Spruch nochmal? "Wenn man keine Ahnung hat, einfach ..." kannst ihn ja selber beenden. sidburn@sid ~/bin $ du -sch /home/sidburn/filme/
68G /home/sidburn/filme/
68G total
sidburn@sid ~/bin $ time ./find_duplicates /home/sidburn/filme/
MD5: cb80d4a1eca23eae5bd241d3a42720d1
/home/sidburn/filme/naruto/shippuuden/german/Naruto Shippuuden 001-002.avi
/home/sidburn/filme/naruto/shippuuden/english/[DB]_Naruto_Shippuuden_001-002_[75F021EA].avi
MD5: 8a639e11c523dbf7aa0b56b8c0bc65e6
/home/sidburn/filme/naruto/manga/0405/naruto_0405_18.jpg
/home/sidburn/filme/naruto/manga/0406/naruto_0406_18.jpg
MD5: 675cec5044a6410471bd5200e477061f
/home/sidburn/filme/naruto/shippuuden/german/Naruto Shippuuden 004.avi
/home/sidburn/filme/naruto/shippuuden/english/[DB]_Naruto_Shippuuden_004_[394C745F].avi
MD5: da28c3fdb2391b58e664a8b700d0e474
/home/sidburn/filme/naruto/manga/0300/naruto_0300_17.jpg
/home/sidburn/filme/naruto/manga/0302/naruto_0302_19.jpg
MD5: 5f2bc5f23030ee1abbb2e3e317a2944e
/home/sidburn/filme/naruto/manga/0407/naruto_0407_18.jpg
/home/sidburn/filme/naruto/manga/0408/naruto_0408_18.jpg
/home/sidburn/filme/naruto/manga/0409/naruto_0409_18.jpg
/home/sidburn/filme/naruto/manga/0410/naruto_0410_20.jpg
/home/sidburn/filme/naruto/manga/0411/naruto_0411_19.jpg
MD5: dcef3a6cf712d466392af33dbbe959aa
/home/sidburn/filme/naruto/manga/0400/naruto_0400_18.jpg
/home/sidburn/filme/naruto/manga/0399/naruto_0399_17.jpg
/home/sidburn/filme/naruto/manga/0401/naruto_0401_18.jpg
/home/sidburn/filme/naruto/manga/0402/naruto_0402_16.jpg
/home/sidburn/filme/naruto/manga/0403/naruto_0403_18.jpg
/home/sidburn/filme/naruto/manga/0404/naruto_0404_18.jpg
/home/sidburn/filme/naruto/manga/0412/naruto_0412_18.jpg
MD5: 27c5254653d6d59a8fca202dedd6b0de
/home/sidburn/filme/naruto/manga/0301/naruto_0301_18.jpg
/home/sidburn/filme/naruto/manga/0304/naruto_0304_20.jpg
MD5: 4ea1e66da33b245490fc3b8776b5ba88
/home/sidburn/filme/naruto/shippuuden/german/Naruto Shippuuden 003.avi
/home/sidburn/filme/naruto/shippuuden/english/[DB]_Naruto_Shippuuden_003_[BCF5906D].avi
real 0m35.684s
user 0m5.740s
sys 0m2.916s
sidburn@sid ~/bin $ time fdupes -r -q /home/sidburn/filme/
/home/sidburn/filme/naruto/shippuuden/english/[DB]_Naruto_Shippuuden_004_[394C745F].avi
/home/sidburn/filme/naruto/shippuuden/german/Naruto Shippuuden 004.avi
/home/sidburn/filme/naruto/shippuuden/english/[DB]_Naruto_Shippuuden_003_[BCF5906D].avi
/home/sidburn/filme/naruto/shippuuden/german/Naruto Shippuuden 003.avi
/home/sidburn/filme/naruto/shippuuden/english/[DB]_Naruto_Shippuuden_001-002_[75F021EA].avi
/home/sidburn/filme/naruto/shippuuden/german/Naruto Shippuuden 001-002.avi
/home/sidburn/filme/naruto/manga/0412/naruto_0412_18.jpg
/home/sidburn/filme/naruto/manga/0400/naruto_0400_18.jpg
/home/sidburn/filme/naruto/manga/0399/naruto_0399_17.jpg
/home/sidburn/filme/naruto/manga/0401/naruto_0401_18.jpg
/home/sidburn/filme/naruto/manga/0402/naruto_0402_16.jpg
/home/sidburn/filme/naruto/manga/0403/naruto_0403_18.jpg
/home/sidburn/filme/naruto/manga/0404/naruto_0404_18.jpg
/home/sidburn/filme/naruto/manga/0411/naruto_0411_19.jpg
/home/sidburn/filme/naruto/manga/0407/naruto_0407_18.jpg
/home/sidburn/filme/naruto/manga/0408/naruto_0408_18.jpg
/home/sidburn/filme/naruto/manga/0409/naruto_0409_18.jpg
/home/sidburn/filme/naruto/manga/0410/naruto_0410_20.jpg
/home/sidburn/filme/naruto/manga/0406/naruto_0406_18.jpg
/home/sidburn/filme/naruto/manga/0405/naruto_0405_18.jpg
/home/sidburn/filme/naruto/manga/0304/naruto_0304_20.jpg
/home/sidburn/filme/naruto/manga/0301/naruto_0301_18.jpg
/home/sidburn/filme/naruto/manga/0302/naruto_0302_19.jpg
/home/sidburn/filme/naruto/manga/0300/naruto_0300_17.jpg
real 1m27.126s
user 0m39.206s
sys 0m10.437s Mein Skript braucht lediglich 35 sekunden um Dupliakte zu finden. fdupes braucht 1 Min 27 Sekunden. Fast das dreifache an Zeit. Ich habe mein Skript sogar vor fdupes ausgeführt damit fdupes von einem eventuelles Caching Profitieren kann. Das hättest auch selber Testen können bevor du irgendein schwachsinn Postest. Aber Gell ist ja nen Skript deswegen muss es ja wohl langsamer sein?!
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4563
Wohnort: Berlin
|
Dein Skript braucht lediglich 35 Sekunden um Dateien mit gleichen MD5 Hashes zu finden. fdupes prüft noch zusätzlich ob die Dateien wirklich den gleichen Inhalt haben.
|
comm_a_nder
Anmeldungsdatum: 5. Februar 2006
Beiträge: 2533
Wohnort: Dresden
|
Naja, sagen wir mal so, die Wahrscheinlichkeit, dass wir es hier mit einer MD5 Kollision zu tun bekommen werden, ist eher gering. So dass für den Usecase hier das Script von Sid allemal genügend sein wird.
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4563
Wohnort: Berlin
|
Gering bedeutet, die Gefahr besteht. Und laut Murphy's Law wird irgendwann eine ganz wichtige Datei gelöscht. Und das nur weil man nicht auf den byteweisen Vergleich warten wollte. Ich gehe bei so etwas lieber auf Nummer sicher.
|
comm_a_nder
Anmeldungsdatum: 5. Februar 2006
Beiträge: 2533
Wohnort: Dresden
|
Ich hab da nirgendswo was von löschen gesehen. Wenn ich zwei Dateien mit gleichem MD5 Hash erhalte welche zwei gar unterschiedliche Namen haben, dann schau ich mir das vorher doch mal genauer an.
|
Sid_Burn
Anmeldungsdatum: 23. Oktober 2004
Beiträge: 2159
|
Marc 'BlackJack' Rintsch schrieb: Gering bedeutet, die Gefahr besteht. Und laut Murphy's Law wird irgendwann eine ganz wichtige Datei gelöscht. Und das nur weil man nicht auf den byteweisen Vergleich warten wollte. Ich gehe bei so etwas lieber auf Nummer sicher.
Die Datei muss nicht nur die gleiche MD5 Summe haben, sondern auch die gleiche Dateigröße. Diesen Fall zu finden sollte nochmal um einiges geringer sein. Ansonsten löscht das Skript nur automatisch wenn du es sagst. Default macht es das nicht. Hierfür hatte ich aber auch hier: http://forum.ubuntuusers.de/post/1258851/ schon etwas dazu gesagt: Wie präzise ist das Finden von Duplikaten?
Da Dateien nicht direkt 1:1 verglichen werden sondern auf Basis Ihrer MD5 Summe, besteht immer eine Chance das zwei unterschiedliche Dateien mit der selben MD5 Summe existieren. Dies liegt in der Natur da man mit 128bit nur eine begrenzte Anzahl von unterschiedlichen Dateien abbilden kann. (340.282.366.920.938.463.463.374.607.431.768.211.456 um genau zu sein.) Allerdiengs wird nicht nur die MD5 Summe als Vergleich genommen sondern es muss auch die Dateigröße übereinstimmen. Die Chance das also zwei unterschiedliche Dateien als identische Dateien angesehen werden ist also schwinden gering. Aber für Theoretiker erreicht sie natürlich trotzdem nie 100% sondern nur 99.9999…% (ganz viele neuenen). Wenn dir daher das Automatische Löschen zu Risikoreich ist, dann nutze es nicht!
Ansonsten spielt bei sowas nicht die CPU eine große Rolle, sondern eher deine I/O. Wenn du zwei 4GByte Dateien vergleichst bremsen deine Festplatten aus. Und nicht ob das programm nun ein Perl Program ist, oder ob es eine ELF binary ist. Von daher ist die aussage "Langsames Skript" total unbedeutend. P.S: Ich hasse Wiki Syntax. BB Code ist besser. P.S2: Hmm, nice. Einmal ausvesehen auf "Abbrechen" gedrückt und dann mit browser "Stop" abgebrochen und die drei Knöpfe "Veröffentlichen", "Vorschau", "Abbrechen" haben dann gar keine Funktionalität mehr...
|
Wessman
Anmeldungsdatum: 4. Mai 2008
Beiträge: 8
Wohnort: 49509
|
Cooles Scirpt, danke. Hat mir echt weiter geholfen in meiner Fotosammlung. /AW
|
McMatt
Anmeldungsdatum: 19. Februar 2009
Beiträge: 106
|
Das Skript funktioniert klasse. Leider kann das Skript nicht mit Umlauten umgehen. Ich bin mit der Perl Syntax nicht vertraut und kann nicht selbst den verwendeten Zeichensatz einstellen. Ist dies problemlos moeglich?
|
Sid_Burn
Anmeldungsdatum: 23. Oktober 2004
Beiträge: 2159
|
McMatt schrieb: Das Skript funktioniert klasse. Leider kann das Skript nicht mit Umlauten umgehen.
Du meintest wohl das wenn Dateien mit Umlauten (UTF-8) im Dateisystem liegen diese bei der Ausgabe nicht mehr korrekt dargestellt werden, oder? Das Problem habe ich soweit behoben. Wenn du etwas anderes meintest dann bitte etwas detailierter mitteilen, wenn es geht mit einem beispiel.
Ansonsten habe ich das ganze jetzt in einem Git Repository hinzugefügt. Git Repository: http://sidburn.de/cgi-bin/gitweb.cgi?p=duplicates;a=summary Um die letzte Version zu bekommen einfach auf das Gitweb Interface gehen, und dann im letzten commit der gemacht wurde "snapshot" auswählen. Dann bekommt man eine tar.gz Datei mit der letzten Version zum herunterladen. Für Informationen zum Skript kann man hier schauen: http://forum.ubuntuusers.de/post/1258851/ Die Download Links die dort genannt werden sollte man NICHT nutzen, da sie veraltet sind.
|