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.
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.