Hallo, On Mon, 09 Jun 2003, Jan Trippler wrote:
On Sam, 07 Jun 2003 at 17:57 (+0200), David Haller wrote:
On Sat, 07 Jun 2003, Jan Trippler wrote:
On Fre, 06 Jun 2003 at 09:25 (+0200), David Haller wrote: [..]
dh@slarty[1]: /tmp/test3 (0)$ ls -b1 a\tb b\\tc c\nd [...] $ find . -type f -print0 | od -tx1 0000000 2e 2f 61 09 62 00 2e 2f 62 5c 74 63 00 2e 2f 63 ^^ Da! nur noch einer.
Moment! Das ist ja auch richtig so! Die Datei heisst 'b backslash t c' und eben nicht 'a tab c'. Wie eben auch in der hex-Ausgabe zu sehen.
D.h. tar expandiert faelschlich das backslash-t im Dateinamen zu einem tab...
Ja. War wohl doch schon etwas spät ;-)
Was der tar da macht, weiß ich nicht, aber folgender Trick funktioniert bei mir: [..] jan@p4mobil:~/tmp/tartest> find . -type f -print0 | sed 's/\\/\\\\/g' | tar cvf ../test.tar --null -T - ./a\tb ./b\\tc ./c\nd [..] Doof kann man sein, man muss sich nur zu helfen wissen ;-)
Darum geht's ja eigentlich ja auch nicht. Fuer die meisten (shell) Probleme finden sich ja "Wuergarounds" wie obiger, der die '\' einfach per sed verdoppelt. Im Sinne des Erfinders ist das jedenfalls nicht. IMO ist das ein Bug in tar... Wenn ich dran denke und Zeit habe, schau ich mir mal den code von 'tar' an und reiche ggfs. einen Bugreport ein... *MOMPL* ==== $ sash
-tar cvf test.tar * a a b a b\tc a c d tar tvf test.tar tar: Record size = 7 blocks -rw-r--r-- 500/1024 4 2003-06-06 09:06 a\tb -rw-r--r-- 500/1024 5 2003-06-06 09:07 b\\tc -rw-r--r-- 500/1024 4 2003-06-06 09:07 c\nd exit $ rm test.tar $ tar cvf test.tar * a\tb tar: Cannot add file b c: No such file or directory c\nd tar: Error exit delayed from previous errors $ rm test.tar ====
Da ist offenbar die mini tar-Implementation der sash besser als GNU-tar... Was meine Vermutung (-> Bug) bestaetigt... -dnh PS: $ tar --version | head -1 tar (GNU tar) 1.12 $ rpm -qf /bin/sash sash-3.4-41 $ rpm -q --queryformat "%{distribution}\n" -f /bin/sash /bin/tar SuSE Linux 6.4 (i386) SuSE Linux 6.2 (i386) Kann obiges mal jemand mit (anderen Versionen) nachvollziehen? PPS: Jan, ich denke, obiges Beispiel sollte mit in unser "kranke-Dateinamen"-Archiv... Ich fang die Tage mal einen tarball (sic!) an, weiteres per PM? Apropos: da faellt mir ein guter Dateiname fuer den tarball ein: "filename-insanity-check.tar" ;) Was ne Ironie, dass eben 'tar' da offenbar selber Schwierigkeiten hat... *lol* --
Alkohol ist Gift, und Gift gehoert Vernichtet Eben. Seh schon hier sin alle dem aloholizismus verfallen! Ach? Iss das ansteckend? *glugggluggglugg* *brööööööööhhhhhh* [aus suse-talk]