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