This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: quoting windows pathnames


Igor Pechtchanski wrote:

On Mon, 26 May 2003, Charles D. Russell wrote:



Since switching to Windows XP, I am forced to use pathnames with spaces. In
.profile, how do you quote a pathname with spaces so that cd $DIRNAME and
ls $DIRNAME will work? I can write a $DIRNAME that will work in makefiles
or when invoked from the bash shell as ls "$DIRNAME", but I can't find a way
that lets me omit the quotes when using ls from the shell prompt.



Charles,


You really should use double quotes -- that's what they're there for.
You can avoid having to use pathnames with spaces with judicious use of
"mount" and/or symlinks.  If you really, really, have to use pathnames
with spaces AND not use double quotes at the prompt, you may try the
following trick:

$ alias ls='eval /bin/ls'
$ export DIRNAME='"/cygdrive/c/Program Files"'
$ ls $DIRNAME
AFP Workbench 32/                        PowerPoint Viewer/
...
$


I also recommend using mount and/or symlinks, e.g.


   $ mkdir /programs
   $ mount 'C:\Program Files' /programs

but another option is to switch from bash to zsh. By default, it does _not_ perform field splitting on the value of environment variables, so
$ cd $DIRNAME
and
$ ls $DIRNAME
will work as you expect.
(This is controlled by the SH_WORD_SPLIT option.)


- Michael


-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]