Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/bin/ls
On Sun, 09 Apr 2006, Perry E. Metzger wrote:
> Jan Schaumann <jschauma%netbsd.org@localhost> writes:
> > 'ls -b' now yields foo\sbar (whitespace) foo\tbar (tab) foo\rbar (CR).
> > 'ls -B' now yields foo\040bar foo\011bar foo\015bar.
>
> Hrm. \s isn't read by the shell. "\ " is.
>
> Having -b do things like "\ " means you can feed the output of ls -b
> into the shell and actually get the right file even if it has spaces
> etc. in it.
Yes, for the special case of "\ ". Not for arbitrary non-graphic
characters.
> I think that's a valuable application. Even C doesn't
> parse \s so far as I know...
With the current scheme, you'll have to use something like
mv "$(printf '%s' 'name escaped via ls -[bB]' | unvis)" newname
but that was already true before the recent changes.
(Hmm, it would be nice if vis and unvis took "-s string" flags.)
I see ls -[bB] as mainly for human consumption, where what I want is
something that's unambiguous, easy to understand, and difficult to
misinterpret. "\ " works for that, but it's not one of the encodings
produced by strvis.
--apb (Alan Barrett)
Home |
Main Index |
Thread Index |
Old Index