delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/12/05/01:01:26

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <20021205060104.39630.qmail@web13602.mail.yahoo.com>
Date: Wed, 4 Dec 2002 22:01:04 -0800 (PST)
From: James Shaw <qumqam AT yahoo DOT com>
Subject: Re: Bash puzzle: Spaces, environment variables and tab completion
To: cygwin AT cygwin DOT com
MIME-Version: 1.0

Hi all,

Thanks to everyone for the advice.

The first posts of advice were that it wasn't
possible to do within the bash quoting mechanism:

"You're swimming upstream. Don't do that. Use the
system in accordance with its design."

I agree that I felt like I was swimming upstream.
Hence my post.  I do find it a little odd, because
if I type into the command line:
% cd /cygdrive/c/Program\ Files/G<Tab>
it will work.  But I seem to have no means to
define an alias/macro/variable to exactly equal
'/cygdrive/c/Program\ Files' _and_ be expanded
before (and therefore available) to tab
completion.

Although I appreciate Gary's encouragement, going
around bash instead of struggling with it, does
seem the better solution.  There were several
variations on the same theme on this bypass
solution.  Thanks to Ehud, Michael and Igor.
Basically either symbolically link or mount a (non
spaced) file to the problem path.  Then I can
define an environment variable to that link/mount.

I've been playing around with these suggestions
today and this solution does work!  Puzzle solved.
(Or at least worked around.)

Some notes:
Contrary to my expectations (and Randall's post),
ls -L isn't needed.  I can ls ~/pf, and it will
deref the symlink and list the contents of
c:/Program Files.  And ls isn't aliased to ls -L.
Any thoughts on why this is?

One minus with this 'cheat' is that I don't get
the 'real' name of the path.  E.g. If I cd ~/pf,
bash (correctly) thinks that I'm in /home/jhs/pf,
but it would be nice to use the long name.  If it
was a hard link, neither link would be the "real"
name, but with a symlink, there is some sense of
"real" and "virtual".  So, if anyone has a fix for
this minor glitch, I'd appreciate comments.

This isn't that important for me since the main
reason I have these aliases is to pop open windows
explorer with the path in question.  I find it
very handy when in a cygwin shell to open an
'explorer' window in my current directory, so I
wrote a little Perl script to cygpath a directory
and call explorer.  This is especially useful to
copy from one open cygshell to another or to throw
stuff in the Recycle Bin (rather than rm, if I'm
feeling skittish).  I find this command useful to
navagate my windows world via cygwin and if
there's any interest, I'd be happy to post the
details.

Finally, I didn't try mount, since symlinking
worked.  I think that I've read that for cygwin,
mount is faster (perhaps the mount table is in
memory while the sym link is on disk?), but I sort
of feel that mount is a superuser command and,
even though I'm the only user, I like to stick to
non-superuser solutions if available.

Again, thanks to everyone who helped.

Best,
James

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019