quoting windows pathnames

Michael Schaap cygwin@mscha.org
Mon May 26 21:56:00 GMT 2003


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/



More information about the Cygwin mailing list