This is the mail archive of the cygwin 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: Windows-style pathname does not work as command - why?


On 9/9/2010 11:20 AM, Morgan Gangwere wrote:
> on Thu, 02 Sep 2010 12:13:12 -0600, Eric Blake <4C7FE938.6060806@redhat.com>
> attacked their terminal with
> [stuff relating to Win32 paths]
> 
> Here's a sed script I use to get around that... Put this in your script (or
> ~/.bashrc) and enjoy
> 
> function wintocyg {
> 	if [ "x${$1}" == "x" ]; then
> 		return 1
> 	fi
> 	echo $1 | sed 's/\([a-zA-Z]\)\:/\/cygdrive\/\1/g;s:\\:/:g'
> }
> 
> This:
> - checks that there is an argument.
> - Converts that argument using a sed script that looks for a drive letter, :\
>   and converts that into a Cygdrive path. This works for root level stuff
>   ("d:\") and for deeply nested things (like d:\ping\me_with\a hundred boxes
>   of\liquor).
> 
> Pretty Simple Stuff, but its a pain. I've used this for a while now.
> 
> I know its a hack but its /works/. You could easily make it escape ' '* but I'm
> assuming you're calling it using "`wintocyg mypath`" ( /always/ escape your
> paths )

Actually, this function only works if the user has the default cygdrive
prefix.  This can and often *is* changed, however.  Fortunately, the
Cygwin developers have had your back on this for a very long time.  Use
the cygpath program to convert all your paths.  It safely handles
conversions both to and from POSIX for both absolute and relative paths,
can convert to short form DOS paths (e.g C:\Progra~1\...), supports
paths with arbitrary whitespace, can provide many well known paths such
as the user's Desktop directory, can be run by Windows-native programs,
and more.

-Jeremy

--
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


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