Hallo, On Sun, 15 Jun 2003, Christian Boltz wrote:
Am Freitag, 13. Juni 2003 23:12 schrieb David Haller:
[nur ganz kurz, da schon im Halbschlaf...]
So früh? ;-)
Ja. Ich war seit 2:30 oder so wach...
On Fri, 13 Jun 2003, Christian Boltz wrote: [..]
Naja, notfalls könnte man ja noch ein ZIP-Archiv erstellen *flücht* Scheint sogar zu funktionieren: cb@tux:/tmp/tmp-cb/kranke_dateinamen> zip test.zip *
Nimm noch Dateien mit ':;\\b' in die Liste mit auf...
zip ist auf jeden Fall (bisher) verträglicher als tar ;-)
Hoi. Muss ich dann auch mal testen ;)
Erste Stolperfalle war eine Datei mit \b (Backspace) im Namen, da wurde der Backspace einfach "verschluckt". Zur Info:
Schluckt zip auch die mit den ':'? Die sind naemlich unter Win* und MacOS[3] illegal[4]...
cb@tux:/tmp/tmp-cb/kranke_dateinamen> zip -h| head -n3 | tail -n1 Zip 2.3 (November 29th 1999). Usage:
Hier: $ zip -h | headmidtail -s4:1 Zip 2.2 (November 3rd 1997). Usage: (bei mir war's noch ne Zeile mehr vor der Version ;) Erfreulich stabil das Teil offenbar, wenn zwischen 2.2 und 2.3 zwei Jahre liegen :)
Ach so, die IMHO kompatibelste Lösung zur Verteilung der kranken Dateinamen dürfte wohl ein kleines Script mit einer Reihe touch-Befehle sein ;-)
Ein sh-script wird fies bei den richtig fiesen Dateinamen... sollte aber fuer's meiste reichen... Evtl. geht awk, perl oder zur Not sogar C sollte auf jeden Fall gehen. Hm. Eigentlich sollten wir dann auch ein aufraeumen implementieren, denn die meisten Tools werden wohl an der ein oder anderen Datei scheitern (inkl. rm, mc u.a.)... Die Idee ist jedenfalls gut -- muss man mal testen... Andererseits: es interessiert ja nicht, wie wir das Archiv erstellen, solange tar das dann richtig auspackt... *eg* Haette den Vorteil, dass wir und nur mit den Bugs von tar naeher beschaeftigen muessten...
Hätte übrigens auch den Vorteil, dass man das "touch" leicht z. B. durch ein "cp" oder "mkdir" o. ä. ersetzen kann, wenn ein Programm mehr als nur leere Dateien möchte ;-) Mein momentaner Stand: (Disclaimer für alle "Nicht-Experten": bitte nur ausprobieren, wenn Ihr auch wisst, wie man die erstellten Dateien wieder los wird ;-)
Disclaimer muttu schreien! ;) WER DAS FOLGENDE AUSFUEHRT IST SELBER SCHULD!!!1
touch '001 b' # tab touch '002\tc' touch '003 d' touch '004\ne' touch '005\\\ty' touch '006\\tz'
Hier sollten wir wohl mind. bis zur 5 '\' Variante gehen... Backslashes werden wohl ein Hauptthema sein ;)
touch '007:e' touch '008;f' touch '009\b' touch '010:;\\b' touch '011^Bg' # ^B = [Ctrl-v][Ctrl-b]
Was ist daran (ASCII 0x02) interessant? Also im Vergleich z.B. zu '\a' oder '\f'? Oder hast du das mit '^H' (ASCII 0x08, '\b') verwelcshert? 'printf "^H...%10i"' (o.ae) verwende ich uebrigens im Statistikscript fuer die Fortschrittsanzeige ;)
touch '012*x' touch '013 $PATH' touch '014 "xy"' touch '015 "x' touch "016 'y" touch "017`echo -e \"abc\bdef\"`" touch '018a?b' # [1] touch '018a_b' # als "Ergänzung" zu 018a?b ;-) touch -- '--019-no-such-option' touch -- '-020'
*Schick* Jo, da is schon einiges versammelt ;) Es fehlt z.B. noch: touch '041`echo -e "\b"`' und diverse Varianten davon ;)) Im Prinzip muss man ja alles ausser '\0' und '/' abklopfen... Und von den Sonderzeichen noch mehr "escapte" Varianten...
Die Nummerierung der Dateien halte ich übrigens für sinnvoll, damit man leichter auf den Dateinamen kommt, der beim Testen Probleme gemacht hat - wobei man über die Reihenfolge der Namen nochmal nachdenken sollte, da ja durch die Nummerierung eine "definierbare" Reihenfolge entsteht und wir IMHO eine Staffelung von "schafft fast jedes Programm" bis hin zu "wer das richtig handhabt, bekommt ein Extralob" ;-) haben sollten.
Jup. Die Nummer wuerde ich aber nicht zu Beginn stellen, das entschaeft zu vieles (z.B. was waere mit '-\b; rm -rf'?)
Über die Verteiliung diverser Leerzeichen in den Dateinamen (insbesondere solcher, die irgendwie expandiert werden könnten, also alles mit *, ? oder $irgendwas) können wir noch diskutieren ;-)
*g*
[1] 018a?b wird übrigens von ls -b nicht korrekt gequoted ("?" statt "\?") und erwischt daher auch 018a_b :-( -> Bug in ls? [2]
Hm. Bei mir wird das als \? angezeigt (ich hab aber noch nicht alle anderen, die touch evtl. trotz der '' expandieren koennte). Bash 2.03, ls (fileutils) 4.0...
[2] Wenn wir lange genug über fiese Dateinamen nachdenken, fahren wir wohl jedes Programm an die Wand ;-)
Jau. Naja, die meisten zumindest *eg* -dnh [3] da dort Pfadtrenner analog '/' [4] wie das unter MacOS X genau aussieht weiss ich nicht, wg. dem BSD-Unix drunter sind sicher auch noch die '/' "illegal"... -- Das ist keine Sigg, Zum Kuckuck noch mal! Und wenn du eine daraus machst, so ist das deine Schuld. [WoKo zu Michael Hoffmann in dag°]