mehrere Aktionen auf ne grosse Ordnerstruktur anwenden, wie?
Verfasst: Freitag 16. Mai 2008, 11:13
Hi!
Wir haben hier nen grossen zentralen Projektserver. Auf dem befindet sich fuer jedes Projekt (sprich fuer jeden Kinofilm) ein eigener Unterordner, in dem sich alle Daten dieses Projektes sammeln. Darin sind dann sehr viele Daten, weil alles mit Einzelbildsequenzen funktioniert. So ein Projektordner kann locker mal 1-2TB gross sein und 400.000-600.000 Dateien und Ordner beinhalten.
Am Ende eines Projektes muessen vor dem Wegarchivieren per Taperoboter einige Aufraeumarbeiten gemacht werden, damit nicht unnoetige Sachen archiviert werden. Das sind z.B. Lowres-Proxies der Highres-Bilddaten, das sind temporaere Ordner, das sind die ganzen Spezialdateien, die von Macs angelegt werden (._DS-Store, Ressourcefork-Dateien, usw.) und etliches mehr. All diese Dateien und Ordner muessen geloescht werden.
Bisher macht das ein Shellscript mehr schlecht als recht mit dem 'find'-Befehl.
Wie wuerde man denn das in Python vom Ansatz her schlau loesen, damit es performancemaessig ueberschaubar bleibt? Ich muss ja irgendwie ne Liste (oder mehrere?) mit allen Dateien und Ordnern machen und die dann auf bestimmte Kriterien abfragen.
Ist es da schlau, einfach erstmal rekursiv alle Dateien zu suchen und die dann mittels lauter 'if xy' einfach durchzugehen? Vermutlich nicht, oder? Denn wenn ich nen ganzen Ordner eh loeschen kann, muss ich ja dessen Inhalt nicht durchsuchen. Also erstmal ne Liste aller Ordner machen und die abarbeiten und dann in nem zweiten Durchgang alle noch verbleibenden Files?
Oder gibt es noch viel schlauere Ansaetze um mit so vielen Dateien und Ordner effizient umzugehen?
Danke fuer jegliche Ideen und Stupser in die richtige Denkrichtung.
Shakebox
Wir haben hier nen grossen zentralen Projektserver. Auf dem befindet sich fuer jedes Projekt (sprich fuer jeden Kinofilm) ein eigener Unterordner, in dem sich alle Daten dieses Projektes sammeln. Darin sind dann sehr viele Daten, weil alles mit Einzelbildsequenzen funktioniert. So ein Projektordner kann locker mal 1-2TB gross sein und 400.000-600.000 Dateien und Ordner beinhalten.
Am Ende eines Projektes muessen vor dem Wegarchivieren per Taperoboter einige Aufraeumarbeiten gemacht werden, damit nicht unnoetige Sachen archiviert werden. Das sind z.B. Lowres-Proxies der Highres-Bilddaten, das sind temporaere Ordner, das sind die ganzen Spezialdateien, die von Macs angelegt werden (._DS-Store, Ressourcefork-Dateien, usw.) und etliches mehr. All diese Dateien und Ordner muessen geloescht werden.
Bisher macht das ein Shellscript mehr schlecht als recht mit dem 'find'-Befehl.
Wie wuerde man denn das in Python vom Ansatz her schlau loesen, damit es performancemaessig ueberschaubar bleibt? Ich muss ja irgendwie ne Liste (oder mehrere?) mit allen Dateien und Ordnern machen und die dann auf bestimmte Kriterien abfragen.
Ist es da schlau, einfach erstmal rekursiv alle Dateien zu suchen und die dann mittels lauter 'if xy' einfach durchzugehen? Vermutlich nicht, oder? Denn wenn ich nen ganzen Ordner eh loeschen kann, muss ich ja dessen Inhalt nicht durchsuchen. Also erstmal ne Liste aller Ordner machen und die abarbeiten und dann in nem zweiten Durchgang alle noch verbleibenden Files?
Oder gibt es noch viel schlauere Ansaetze um mit so vielen Dateien und Ordner effizient umzugehen?
Danke fuer jegliche Ideen und Stupser in die richtige Denkrichtung.
Shakebox