cygwin symlink? bug

Randall R Schulz rrschulz@cris.com
Sun Feb 9 16:06:00 GMT 2003


Max, Trevor,

BASH keeps an internal idea of the current working directory. In the 
face of symbolic links, this internal record of the current working 
directory may not be identical to that computed by the "pwd" programs 
traversal-to-root algorithm.

I use this instead of BASH's built-in pwd command:

wd() {
     WD="$(pwd)"
     WDP="$(/bin/pwd)"
     if [ "$WD" != "$WDP" ]; then
         echo "bash: $WD"$'\n'"real: $WDP"
     else
         echo "$WD"
     fi
}

I use this one if I want to see the Windows form of the current working 
directory, too:

awd() {
     WD="$(pwd)"
     WDP="$(/bin/pwd)"
     if [ "$WD" != "$WDP" ]; then
         echo "bash: $WD"$'\n'"cyg:  $WDP"
     else
         echo "cyg:  $WD"
     fi
     echo "win:  $(cygpath -w -a "$(pwd)")"
     echo "mix:  $(cygpath -m -a "$(pwd)")"
}

Randall Schulz


At 05:48 2003-02-09, Max Bowsher wrote:
>Trevor Forbes wrote:
> > I am having problem with some of my build scripts and the following
> > demonstrates the problem:
> >
> > If run the following (as a script) I get -- /tmp/foo/bar
> > # !/bin/bash
>
>Are you sure? I can reproduce your results only if I change the shebang to
>/bin/sh.
>
> > cd /tmp; mkdir -p foo/bar; ln -f -s foo/bar bar; cd bar; pwd; cd ..
> >
> > If I type the line in a shell then I get what I expected -- /tmp/bar
> >
> > I am using cygwin-1.3.20-1 but do not I think it is a new feature.
> >
> > Is my logic correct?
>
>IIRC, Linux does this too - but I'm not easily able to test that at the
>moment.
>
>
>Max.


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



More information about the Cygwin mailing list