Moin, zu meinen derzeitigen Experimenten ("Ich will, daß _alle_ Dateinamen kortrekt laufen"):
Ich will nicht mv'en sondern cp'en :-)
Meines Wissens gibt es in perl zwar "rename" als Äquivalent zu "mv", aber nix für "cp". Ich habe "File::Copy" angeguckt. Läuft bei mir nicht, was aber egal ist: Es kann ohnehin nicht kopieren unter Beibehaltung des original-Zeitstempels.
David Haller:
Schalt ein 'touch -a -r ORIGINAL KOPIE' dahinter...
Das würde das Problem nicht lösen. Ausgangsproblem: Ich habe "kranke" Dateinamen, die ich aus perl der Shell übergebe. Vorschlag hier: Mach es nicht über die Shell, nimm eine perl-interne-Funktion Widerspruch von mir: Gibt es nur für "move", nicht für "copy". Idee von dir: Touchen der Kopie über die Shell. Womit wir wiedr beim Ausgangsproblem wären: Wie erzeuge ich bombensichere Dateinamen.
Alternativen gerne gehört. Irgendwas in der Art von "Kopiere::Gnadenlos" :-)
Teste mal mit folgendem:
Danke, werde ich machen.
Achso: Woher kommen nochmal die kranken Dateinamen? Sind das schon vorhandene (und wenn ja, auf welchem FS?) oder liest du die erst aus den Dateien aus?
Es werden, grob gesagt, Fontdateien so umbenannt, daß sie "richtig" heissen, also nicht mehr "ARIALBI.TTF" sondern "Arial Bold Italic.ttf". Es gibt aber Fonts, die heissen "Sabon*Light" mit Sternchen drin. Das Programm ist unterteilt in Subroutinen, die in perl mit "require" eingebunden werden und ein Hauptprogramm. Ich werde in meinemn Hauptprogramm solche Dateinamen filtern. Ich möchte aber, daß die Subroutinen prinzipiell korrekt mit allen Dateinamen umgehen können, damit andere Coder nicht ins Messer laufen. Man kann keinen Designer davon abhalten, seinen Font "~/*" zu nennen. :-)
PS: Wer kranke Dateinamen verwendet, erlaubt oder in Umlauf bringt...
Voll korrekt. Allerdings interessiert mich das Thema generell mal. Zum Beispiel, um Daten auf einem Linux-Fileserver zu backuppen, die per netatalk oder Samba erzeugt wurden. Usererziehung kann man sowieso knicken. Nicht in dieser Welt. Und dann ist es noch interessant für die cgi-Programmierung. Vor einiger Zeit gab es hier einen Thread zum Thema suidperl, in dem gezeigt wurde, wie schnell einem da was "untergeschoben" werden kann. Wäre generell nicht schlecht, wenn man eine Funktion "mach_sicher($filename)" in der Schublade hat. Gruß, Ratti -- http://www.gesindel.de | Fontlinge | Die Schriftenverwaltung für Windows