On 9/9/2010 11:20 AM, Morgan Gangwere wrote: > on Thu, 02 Sep 2010 12:13:12 -0600, Eric Blake <4c7fe938.6060...@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