delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/11/07/22:56:02

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS
X-Spam-Check-By: sourceware.org
Message-ID: <4AF64144.8050000@veritech.com>
Date: Sat, 07 Nov 2009 22:55:48 -0500
From: "Lee D. Rothstein" <l1ee057 AT veritech DOT com>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: 1.7] Can you have multipe cygdrive path prefixes active at once
References: <26227605 DOT post AT talk DOT nabble DOT com> <26227607 DOT post AT talk DOT nabble DOT com> <4AF3C9FE DOT 806 AT bopp DOT net> <26230853 DOT post AT talk DOT nabble DOT com> <4AF495B0 DOT 7090607 AT bopp DOT net> <26249511 DOT post AT talk DOT nabble DOT com> <4AF605C3 DOT 6050005 AT bopp DOT net>
In-Reply-To: <4AF605C3.6050005@bopp.net>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/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

Bopp wrote:
 > aputerguy wrote:

 >> Jeremy Bopp writes:

 >>> Well, it's a bit of a hack, but you could try something like the
 >>> following:

 >>> $ dirname $(cygpath -u C:/)
 >>> This assumes that there is always a C: drive and converts the path to
 >>> the root of that drive into a POSIX path which will include the 
cygdrive
 >>> prefix.  Then dirname is used to effectively chop off the drive letter
 >>> leaving you with the cygdrive prefix.
 >> This doesn't seem to work in the case where you have mounted the C: 
drive.
 >> For example I mount C: on /c

 >> And the above returns:
 >> $ dirname $(cygpath -u c:/)
 >> /
 >> which doesn't tell me what the cygdrive prefix is -- only where 'c' is
 >> mounted.

 >> Of course, as pointed out in a later reply, one can use an unused 
disk drive
 >> letter like 'x' but that is hardly robust since who knows what drive 
letters
 >> will be unused and/or unmounted.

 > Assuming you do find a reliable way to discover the cygdrive prefix, how
 > do you plan to handle mapped drives for remote shares?  I ask because
 > you mentioned that you might want to be able to run something like find
 > on the cygdrive prefix itself, and of course scanning a remote share
 > like that may not be desirable.  Also, how do you handle the mounted C:
 > case as well?  Even if you mount it to /c as you have done, I think
 > /cygdrive/c will also have it.

 > -Jeremy

Does this not do what's required (barring spaces in the
"Cygdrive" alternative prefix):

--
#!/bin/bash

# drives_root: Show the root prefix of the Windows drives
#             (perhaps 'Cygdrive', if the installation default
#             was selected) of the current installation of Cygwin

# By Lee Rothstein, 2009-11-06 11:58:53

#PName=$(basename $0)
#PVersion="0.01.00.001"
#PUpDate="2009-11-07"

mount -p | gawk 'NR==2 { print $1 }'

--

WRT embedded spaces in the drive prefix: UNIX, GNU, Linux and to
a large extent Perl, et al, are powerful because they demand of
users a lack of abject stupidity. If stupidity is enforced by OS
conventions and style, the results cannot be good.

Similar approaches to the above can be used with other mounting
artifice, and could even be adapted to embedded spaces.

Shares at depths of more than one directory are another story, but
probably could also be dealt with.

Or, perhaps I don't understand the issues?

Lee


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

- Raw text -


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