Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Gibt es ein Programm, dass von einer spezifischen Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Nehmen wir mal an, ich habe ein Verzeichnis mit den Dateien a, b und c und nun möchte ich Prüfsummen identische Dateien dieser 3 Dateien unter Angabe eines Suchordners, in dem gesucht werden soll finden.
Ich weiß, dass man mit fdupes und rdfind doppelte Dateien finden kann, aber bei diesen beiden Tools kann man leider nicht spezifisch vorgeben, von welchen Dateien die doppelten Dateien und deren Ort gefunden werden sollen.
fdupes und rdfind zeigt mir einfach jede Datei in den angegebenen Ordnern an, die doppelt vorkommen.
Das ist aber nicht das, was ich suche.
Ich möchte dass nur nach a, b und c gesucht wird und mir dann die Ordner aufgelistet werden, in denen die vorkommen und prüfsummentechnisch identisch sind.
Normalerweise würde man jetzt find nehmen, aber der Dateiname dieser 3 Dateien ist so generisch, dass er öfters vorkommt.
Ich muss also auch gleich die Prüfsummen überprüfen.
Wie kann man das realisieren?
Nehmen wir mal an, ich habe ein Verzeichnis mit den Dateien a, b und c und nun möchte ich Prüfsummen identische Dateien dieser 3 Dateien unter Angabe eines Suchordners, in dem gesucht werden soll finden.
Ich weiß, dass man mit fdupes und rdfind doppelte Dateien finden kann, aber bei diesen beiden Tools kann man leider nicht spezifisch vorgeben, von welchen Dateien die doppelten Dateien und deren Ort gefunden werden sollen.
fdupes und rdfind zeigt mir einfach jede Datei in den angegebenen Ordnern an, die doppelt vorkommen.
Das ist aber nicht das, was ich suche.
Ich möchte dass nur nach a, b und c gesucht wird und mir dann die Ordner aufgelistet werden, in denen die vorkommen und prüfsummentechnisch identisch sind.
Normalerweise würde man jetzt find nehmen, aber der Dateiname dieser 3 Dateien ist so generisch, dass er öfters vorkommt.
Ich muss also auch gleich die Prüfsummen überprüfen.
Wie kann man das realisieren?
-
- Beiträge: 103
- Registriert: 06.11.2021 21:56:52
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Hallo
Caveat: Mir fehlt die konkrete Erfahrung mangels eigener Anwendung! Aber tut rmlint vielleicht was du wünschst?
Doku: https://rmlint.readthedocs.io/en/latest ... nput-files
Grüße
tof
Caveat: Mir fehlt die konkrete Erfahrung mangels eigener Anwendung! Aber tut rmlint vielleicht was du wünschst?
Doku: https://rmlint.readthedocs.io/en/latest ... nput-files
Grüße
tof
Signaturen sind wie frische Pilze, denn frische Pilze.....
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Ich habe das Tool, das du vorgeschlagen hast mal installiert und mir die man page angeschaut. Es scheint aber nicht das zu können, was ich brauche. Es gibt bspw. keine Möglichkeit eine bestimme Datei anzugeben, nach der dann die doppelten gesucht werden sollen.
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Was du suchst wäre in etwa so etwas:
Das könnte man sich in einem kleinen Skript noch komfortabler gestalten und für mehrere Originaldateien erweitern.
Nachtrag:
Oder es geht vielleicht tatsächlich mit rmlint, mit einem "original directory":
Ungetestet.
Code: Alles auswählen
find /ein/order/zum/durchsuchen -type f -exec md5sum {} + | grep ^md5sum_von_datei_a
Nachtrag:
Oder es geht vielleicht tatsächlich mit rmlint, mit einem "original directory":
Code: Alles auswählen
rmlint /ordner/mit/duplikaten // /ordner/mit/a_b_c
Manchmal bekannt als Just (another) Terminal Hacker.
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Ja, das dürfte gehen, ist dann aber doch eine Brute Force Methode.JTH hat geschrieben:05.03.2022 19:03:57Was du suchst wäre in etwa so etwas:Das könnte man sich in einem kleinen Skript noch komfortabler gestalten und für mehrere Originaldateien erweitern.Code: Alles auswählen
find /ein/order/zum/durchsuchen -type f -exec md5sum {} + | grep ^md5sum_von_datei_a
Wenn man da mehrere große Dateien im Ordner hat, wird von denen alle die Prüfsumme gebildet.
Ich denke, wenn man die Dateien zuerst nach Dateigröße filtert und dann erst die Prüfsummen erstellt und vergleicht, dürfte das schneller gehen.
Hm, ich glaube nicht.Nachtrag:
Oder es geht vielleicht tatsächlich mit rmlint, mit einem "original directory":Ungetestet.Code: Alles auswählen
rmlint /ordner/mit/duplikaten // /ordner/mit/a_b_c
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Mal ausprobiert?
Schnell zusammengebastelt, sieht mir das so aus, wie ich zumindest das von dir gesuchte verstanden hab:
Code: Alles auswählen
$ rmlint -o pretty:stdout dup // orig
# Duplicate(s):
ls '/tmp/tmp.t9ethVQfOO/orig/a'
rm '/tmp/tmp.t9ethVQfOO/dup/a'
rm '/tmp/tmp.t9ethVQfOO/dup/aa'
ls '/tmp/tmp.t9ethVQfOO/orig/b'
rm '/tmp/tmp.t9ethVQfOO/dup/b'
rm '/tmp/tmp.t9ethVQfOO/dup/bb'
ls '/tmp/tmp.t9ethVQfOO/orig/c'
rm '/tmp/tmp.t9ethVQfOO/dup/c'
rm '/tmp/tmp.t9ethVQfOO/dup/cc'
Manchmal bekannt als Just (another) Terminal Hacker.
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Bei der Parameterübergabe fehlt die Angabe der Datei, deren doppelte Dateien gesucht werden sollen.
Damit kriegst du generell alles, was in diesen beiden Verzeichnissen an doppelten Dateien vorhanden ist. Das ist aber nicht das Gesuchte.Schnell zusammengebastelt, sieht mir das so aus, wie ich zumindest das von dir gesuchte verstanden hab:Die ls-ten Dateien sind die Originale, die zum Löschen vorgeschlagenen deren Kopien. In dup/ liegen auch noch andere, hier dann einfach nicht aufgeführte Dateien.Code: Alles auswählen
$ rmlint -o pretty:stdout dup // orig # Duplicate(s): ls '/tmp/tmp.t9ethVQfOO/orig/a' rm '/tmp/tmp.t9ethVQfOO/dup/a' rm '/tmp/tmp.t9ethVQfOO/dup/aa' ls '/tmp/tmp.t9ethVQfOO/orig/b' rm '/tmp/tmp.t9ethVQfOO/dup/b' rm '/tmp/tmp.t9ethVQfOO/dup/bb' ls '/tmp/tmp.t9ethVQfOO/orig/c' rm '/tmp/tmp.t9ethVQfOO/dup/c' rm '/tmp/tmp.t9ethVQfOO/dup/cc'
Beispiel:
Code: Alles auswählen
rmlint -o pretty:stdout b // a
# Duplikate:
ls '/tmp/test/dup/a/r1.txt'
rm '/tmp/test/dup/b/r2.txt'
ls '/tmp/test/dup/b/z1.txt'
rm '/tmp/test/dup/b/z2.txt'
Aber b/z1.txt und b/z2.txt sind zwar identisch, aber im Ordner a gar nicht vorhanden. D.h. die sollten gar nicht zur Löschung vorgeschlagen werden, denn die Aufgabenstellung ist ja, suche nur die Duplikate die ich konkret benenne oder die in einem Verzeichnis liegen, das ich konkret benenne.
Und fdupes macht es leider genauso schlecht. Auch das schlägt z1.txt und z2.txt zur Löschung vor.
Code: Alles auswählen
fdupes -r a b
b/z1.txt
b/z2.txt
a/r1.txt
b/r2.txt
Manche alten Webseiten nutzen bspw, immer noch 1 Pixeldateien zur Layoutdefinition. Hat man ein paar alte Artikel gespeichert, dann hat man auch viele solcher 1 Pixeldateien im Verzeichnis herumliegen, die sollen aber nicht gelöscht werden, da sie für die einzelnen Artikel ja notwendig sind.
Bei fdupes kann man zwar eine Mindestgröße angeben, aber auch das ist nicht in jedem Fall zielführend, denn das mit den 1 Pixeldateien ist nur ein Beispiel, es gibt auch andere. Z.B. bei Programmcode, wenn man eine Lib in mehreren Projektordner hat. Die will man auch nicht löschen, eine lib kann aber auch größer sein, als die Dateien, deren Duplikate man gezielt löschen möchte.
Deswegen bräuchte ich schon eine gezielte Suche nach doppelten Dateien inkl. Angabe der Dateien nach denen überhaupt gesucht werden soll und ich vorher festlegen kann. Dein find Beispiel war da schon besser.
- Blackbox
- Beiträge: 4289
- Registriert: 17.09.2008 17:01:20
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Eigenbau PC: Debian Sid - Kernel: 6.5.13 - Xfce 4.18 mit sway
Desktop PC: Dell Inspiron 530 - Debian Sid - Kernel: 6.5.13 - Xfce 4.18 mit sway
Notebook: TUXEDO BU1406 - Debian Sid - Kernel: 6.5.13 - Xfce 4.18 mit sway
Alles Minimalinstallationen und ohne sudo/PA/PW.
Rootserver: Rocky Linux 9.3 - Kernel: 5.14
Freie Software unterstützen, Grundrechte stärken!
Desktop PC: Dell Inspiron 530 - Debian Sid - Kernel: 6.5.13 - Xfce 4.18 mit sway
Notebook: TUXEDO BU1406 - Debian Sid - Kernel: 6.5.13 - Xfce 4.18 mit sway
Alles Minimalinstallationen und ohne sudo/PA/PW.
Rootserver: Rocky Linux 9.3 - Kernel: 5.14
Freie Software unterstützen, Grundrechte stärken!
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Dafür gibts anscheinend die Option --must-match-tagged, kurz -m:Cordess hat geschrieben:07.03.2022 19:22:33Aber b/z1.txt und b/z2.txt sind zwar identisch, aber im Ordner a gar nicht vorhanden. D.h. die sollten gar nicht zur Löschung vorgeschlagen werden, denn die Aufgabenstellung ist ja, suche nur die Duplikate die ich konkret benenne oder die in einem Verzeichnis liegen, das ich konkret benenne.
Ohne:
Code: Alles auswählen
$ rmlint -o pretty:stdout dup // orig
# Duplicate(s):
ls '/tmp/tmp.zvu1rBkxDm/orig/a'
rm '/tmp/tmp.zvu1rBkxDm/dup/a'
ls '/tmp/tmp.zvu1rBkxDm/dup/c'
rm '/tmp/tmp.zvu1rBkxDm/dup/cc'
ls '/tmp/tmp.zvu1rBkxDm/orig/b'
rm '/tmp/tmp.zvu1rBkxDm/dup/b'
Mit:
Code: Alles auswählen
$ rmlint -m -o pretty:stdout dup // orig
# Duplicate(s):
ls '/tmp/tmp.zvu1rBkxDm/orig/a'
rm '/tmp/tmp.zvu1rBkxDm/dup/a'
ls '/tmp/tmp.zvu1rBkxDm/orig/b'
rm '/tmp/tmp.zvu1rBkxDm/dup/b'
Manchmal bekannt als Just (another) Terminal Hacker.
-
- Beiträge: 196
- Registriert: 22.08.2005 19:58:49
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: Aachen
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Hallo zusammen,
Da ich oft sowas brauche (entweder zum Löschen von mehrfach vorhandenen Daten, oder zumindest um Platz zu sparen und die nur ein Mal zu speichern), habe ich einige ausprobiert und festgestellt, daß man je nach konkretem Einsatzzweck mal das eine oder das andere besser brauchen kann, daher zähle ich sie mal auf:
Worauf man bei alledem achten sollte: das Windows-Programm kann zwar „Reparse Points“ erkennen (also bestimmte Windows-Verknüpfungen), dies schlägt aber unter Wine meist fehl so daß symbolischen Verknüpfungen gefolgt wird. „mount --bind“ ist natürlich erst recht betroffen, das ist auch für die ganzen Linux-Programme vollkommen „transparent“, gefundene Dateien können also nicht als identisch und nur ein Mal vorhanden erkannt werden.
kannte ich noch nicht, diese bestimmte Eigenschaft, daß nicht interaktiv oder „willkürlich“ entschieden wird, welche Datei das „Original“ ist, habe ich bei allen Linux-Programmen, die ich zu dem Zweck gefunden habe, stets vermißt.
Da ich oft sowas brauche (entweder zum Löschen von mehrfach vorhandenen Daten, oder zumindest um Platz zu sparen und die nur ein Mal zu speichern), habe ich einige ausprobiert und festgestellt, daß man je nach konkretem Einsatzzweck mal das eine oder das andere besser brauchen kann, daher zähle ich sie mal auf:
- dupemap (aus magicrescue)
- Duplicate Files Finder (dupf & dupfgui)
- duff
- fdupes
- rdfind
- dupfiles
- pmatch von Tomasz Muras (ursprünglich auf Rubyforge und war wohl mal in Debian) ist nirgendwo mehr zu finden, hat aber ein paar nette Möglichkeiten:
-s, --secondary-choice x,y,z Which files should I prefer? Possible values: short, long, deep, shallow, dirfull, dirempty, random - freedup
Worauf man bei alledem achten sollte: das Windows-Programm kann zwar „Reparse Points“ erkennen (also bestimmte Windows-Verknüpfungen), dies schlägt aber unter Wine meist fehl so daß symbolischen Verknüpfungen gefolgt wird. „mount --bind“ ist natürlich erst recht betroffen, das ist auch für die ganzen Linux-Programme vollkommen „transparent“, gefundene Dateien können also nicht als identisch und nur ein Mal vorhanden erkannt werden.
Christoph
Re: Gibt es ein Programm, dass von einer spezifische Auswahl an Dateien die doppelten Dateien in anderen Ordnern findet?
Danke für eure Antworten.
Ich werde das alles mal bei nächster Gelegenheit ausprobieren.
Momentan komme ich nicht dazu.
Ich werde das alles mal bei nächster Gelegenheit ausprobieren.
Momentan komme ich nicht dazu.