Shell Skript zum automatischen Aufräumen von doppelten Ordnern

enr00

enr00

Routinier
Hallo,

Ich möchte mir ein Shell Script für folgenden Zweck schreiben.
Meine Mutter hat auf Ihrem PC und auf verschiedenen Festplatten viele Ordner und Dateien mehrfach, weil sie des Öfteren mal ein "manuelles Backup" gemacht hat.
Diese Backups liegen aber überall rum, und manchmal sind dann die neuen Fotos einfach in ein altes Backup verschoben worden usw.
Die einzige Struktur die das Ganze hat, ist wahrscheinlich, dass gleiche Ordner den gleichen Namen haben.

Nun möchte ich das Ganze automatisiert ordnen, weil es bei der riesigen Datenmenge viel zu fehleranfällig wäre, das Ganze manuell zu sortieren.

Ich habe mir folgenden Ansatz überlegt:

- Skript bekommt als Parameter alle Ordner, die rekursiv durchsucht werden sollen.
- Dann werden sämtliche Unterordner mit der jeweiligen Ordnergrösse in ein Array geschirieben.
- Dann wird das Array der Grösse der Ordner nach sortiert. Ab hier können also leicht gleiche Ordner identifiziert werden.

Hier kommt dann der Teil, wo ich Rat suche:

Dann: bei den grossen Ordnern anfangen, und von den 2 gleichen Ordnern jeweils einen in den Zeilordner kopieren.
Aber: bei 2 Ordnern /abc/def/ghi und abc/jkl, wo soll der neue Ordner hin, zu /ziel/def/ghi oder /ziel/jkl?

Dann müsste ich aber auch noch aus dem Array alle Einträge löschen, die Unterordner von dem kopierten Ordner sind.
Doch was, wenn diese Unterordner wiederum doppelte Ordner enthalten?
Soll ich das Skript dann auf jeden Ordner rekursiv nochmal anwenden?

Ich hoffe, Ihr habt verstanden, was ich brauche, und habt eventuell einen guten Rat für mich.
 
Naja, fdupes scheint nicht so ganz das zu sein was ich suche, da es nur auf Dateien arbeitet, und nicht auf Verzeichnissen.
Hat keiner einen anderen Vorschlag?
 
Rsync aller Ordner in einen zentralen, sofern die Dateinamen unique sind. Dann hast du am Ende einen Ordner, in dem alle Dateien genau ein Mal sind.
 
Vielleicht kannst Du zunaechst mit 'find' alle Dateien finden und jeweils eine Pruefsumme berechnen und in eine Datei schreiben. Dann sortierst Du die Datei nach Pruefsumme und findest so erstmal die Dateien, die tatsaechlich doppelt vorkommen und behaeltst nur eine davon. Dann kannst Du Dir ueberlegen, wie Du das ganze aufraeumst.
 

Ähnliche Themen

Shell Skript beschleunigen

Zurück
Oben