Christoph Schnauß: überzählige Dateien finden

Beitrag lesen

morgens, Leute ;-)

Ich plage mich grade mit einem Problem, das ich selbst verursacht habe: in einem seit längerer Zeit laufenden Forum, das (wie ursprünglich das SELFHTML-Forum auch) auf dem alten, allerdings mehrfach umgeschriebenen Forumscript von Matt Wright aufbaut, habe ich im Lauf der Zeit ein paar tausend Beiträge bekommen. Die sind teilweise archiviert, teilweise mit der "aktuellen Forumshauptdatei" verlinkt  -  wenns Ärger gab, habe ich immer einmal im Verlauf vieler Monate ganz einfach den link aus dieser aktuellen Forumshauptdatei rausgenommen, aber ich habe versäumt, das zugehörige posting selbst zu löschen. Jaja, ihr dürft Schadenfreude äußern

Jetzt habe ich das Script erneut überarbeitet und will es neu online stellen (meine "user" werden davon gar nix merken), stelle aber fest, daß ich im "posting-Verzeichnis" rund 60 Dateien liegen habe, die ehemalige postings sind, das heißt, aus meiner "Hauptdatei" habe ich sie irgendwann mal rausgelöscht  -  und übrigens aus den diversen Threadanzeigen auch, so weit hat mein Administrationsscript funktioniert. Aber die Dateien selbst sind immer noch vorhanden. Ich weiß bloß nicht mehr, wie ich diese "überzähligen" Dateien finden und endgültig wegschmeißen kann

Bei mehreren tausend ist es mir nun zu mühsam, "von Hand" mein (FTP-)Verzeichnis-Listing mit der Indexdatei zu vergleichen. Ich weiß also im Moment nur, daß ich rund fünf Dutzend "überlüssige" Dateien (ehemalige postings) in meinem Verzeichnis liegen habe, die in der Index-Datei nicht mehr verlinkt sind. Ich will sie gerne löschen, aber ich will natürlich kine falsche Dabei erwischen.

Wie mache ich das?

Das _grundsätzliche_ Vorgehen stelle ich mir so vor:
1. meine (Forums-)Indexdatei auslesen und die Dateinamen in eine Liste schreiben
2. das Verzeichnislisting auf dem Server auslesen und die Dateinamen in eine zweite Liste schreiben
3. Beide Listen vergleichen und auf dem Server die Dateien irreversibel löschen, deren Namen nicht (mehr) in der Indexdatei stehen.

Schritt 1 kriege ich problemlos hin, aber Schritt 2 klappt nicht, also ist es illusorisch, über Schritt 3 (den ich mit Sicherheit auch lösen könnte) nachzudenken :-(

Ich bevorzuge PERL, aber es könnte auch andere Wege geben, falls jemand weiß, wie das geht.

Grüße aus Berlin

Christoph S.