On Sun, May 18, 2003 at 08:48:41PM +0200, Miklas Neugebauer wrote:
Ich dachte da an eine Kompination von ls, find und grep .. aber wie verbinde ich diese tollen Tools miteinander am besten?
Eine Liste aller Dateien bekommst Du mit find:
$ find / -type f -print
Wenn Du eine Prüfsumme aller dieser Dateien berechnest, kannst Du Dateien mit identischer Prüfsumme finden:
$ find / -type f -print0 | xargs -0 md5sum > ~/md5sum.out $ cat md5sum.out ... 076454af3145ff8a5696e4ac8438e603
/home/kris/Source/php4/ext/gd/libgd/CVS/Entries
156ceba06903a96e3d7bdd942894be8e /home/kris/Source/php4/ext/gd/libgd/gd.c 4ca511b69fd31e5381626c63b0e17a37 /home/kris/Source/php4/ext/gd/libgd/gd.h 43741c4ebce00ebe5db3fd9f7a139232 /home/kris/Source/php4/ext/gd/libgd/gdtables.c 06520728488a268fb375535bc9263cac /home/kris/Source/php4/ext/gd/libgd/gd_gd2.c abd063d03af79b7310e48540ed1e3c31 /home/kris/Source/php4/ext/gd/libgd/gd_png.c 1e45f73a99a21229f9f53273fe330500 /home/kris/Source/php4/ext/gd/libgd/pngtogd2.c 79f0495387dc298dc87360c53febe627 /home/kris/Source/php4/ext/gd/libgd/gddemo.c 9a9337b5f25756ea256b6d753be70733 /home/kris/Source/php4/ext/gd/libgd/xbm.c 0e7695f2607567da683ba747eb1a05be /home/kris/Source/php4/ext/gd/libgd/gd2topng.c d6b03dbb296d2015095ce65374a6bec6 /home/kris/Source/php4/ext/gd/libgd/README ...
Indem Du nach Prüfsumme sortierst, und dann auf der Prüfsumme faltest, bekommst Du die gewünschte Information:
$ sort md5sum.out | uniq -w32 -D > uniq.out
Willst Du jetzt noch nur die Namen der Dateien haben, mußt Du die ersten 35 Zeichen jeder Zeile wegwerfen:
$ cut -b35- < uniq.out > cut.out
Kristian
Das System ist ja nicht schlecht, aber meiner Meinung nach erkennt er mir somit keine doppelt heruntergeladenen Dateien oder später Kopierte. Mir würde es, glaube ich zumindest, reichen, wenn er nach Name und Grösse sortiert. Das Script läuft zur Zeit und ich bin auf das Ergebnis erstmal gespannt . -- Micky's SUSE-LINUX Help-Line Danke und Tschuess
* Miklas Neugebauer schrieb am 18.Mai.2003: Hier fehlt eine Autorenangebe. Es ist Kristian.
On Sun, May 18, 2003 at 08:48:41PM +0200, Miklas Neugebauer wrote:
Ich dachte da an eine Kompination von ls, find und grep .. aber wie verbinde ich diese tollen Tools miteinander am besten?
Eine Liste aller Dateien bekommst Du mit find:
$ find / -type f -print
Wenn Du eine Prüfsumme aller dieser Dateien berechnest, kannst Du Dateien mit identischer Prüfsumme finden:
$ find / -type f -print0 | xargs -0 md5sum > ~/md5sum.out $ cat md5sum.out
[...]
Indem Du nach Prüfsumme sortierst, und dann auf der Prüfsumme faltest, bekommst Du die gewünschte Information:
$ sort md5sum.out | uniq -w32 -D > uniq.out
Willst Du jetzt noch nur die Namen der Dateien haben, mußt Du die ersten 35 Zeichen jeder Zeile wegwerfen:
$ cut -b35- < uniq.out > cut.out
Das System ist ja nicht schlecht, aber meiner Meinung nach erkennt er mir somit keine doppelt heruntergeladenen Dateien oder später Kopierte.
Wieso nicht? Wenn die Dateien gleich sind, haben sie auch gleiche Prüfsumme. Umgekehrt kann es zu Problemen führen. So unwahrscheinlich es auch sein mag, aber zwei verschiedene Dateien können die gleiche Prüfsumme haben.
Mir würde es, glaube ich zumindest, reichen, wenn er nach Name und Grösse sortiert.
Namen sind Schall und Rauch.
Das Script läuft zur Zeit und ich bin auf das Ergebnis erstmal gespannt .
Ich schätze mal, das dauert noch eine ganze Weile. Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
On Son, 18 Mai 2003 at 21:49 (+0200), Miklas Neugebauer wrote: [MD5-Vergleich]
Das System ist ja nicht schlecht, aber meiner Meinung nach erkennt er mir somit keine doppelt heruntergeladenen Dateien oder später Kopierte.
Worauf begründest Du diese Meinung? Hast Du Dir die Kommandos denn mal genauer angeschaut? Natürlich werden so alle Dateien gefunden, deren _Inhalt_ identisch ist - das ist ja gerade der Witz an der MD5-Summe.
Mir würde es, glaube ich zumindest, reichen, wenn er nach Name und Grösse sortiert.
Und genau das ist ziemlich unzuverlässig. Schon wenn Du eine Datei 2x von verschiedenen Quellen runterlädst und sie unterschiedlich benannt werden, findest Du sie nicht mehr als Doublette - und wenn ihr Name weit genug auseinanderliegt (von der Sortierung her), wirst Du sie nicht sicher entdecken. Jan
On Sun, May 18, 2003 at 09:49:01PM +0200, Miklas Neugebauer wrote:
[ Monsterquote entsorgt ]
Das System ist ja nicht schlecht, aber meiner Meinung nach erkennt er mir somit keine doppelt heruntergeladenen Dateien oder später Kopierte.
Die md5-Prüfsumme ist für inhaltsgleiche Dateien identisch. Das setzt auch gleiche Dateigröße voraus. Zeitstempel und Namen sind irrelevant bei dieser Methode, sie geht ausschließlich auf Inhalte. rsync verwendet ein ähnliches, jedoch differenzierteres Verfahren, um festzustellen, welche Teile einer Datei noch kopiert werden müssen. Kristian
participants (4)
-
B.Brodesser@t-online.de
-
Jan.Trippler@t-online.de
-
Kristian Koehntopp
-
Miklas Neugebauer