cygpath -m behaviour change

Andrey Repin
Mon Sep 16 22:03:00 GMT 2013

Greetings, David Griffiths!

>> Yes, that's exactly right, assuming that 'boo' doesn't exist.

> Hi, it happens even if boo does exist. To put it in context, the
> script in question was attempting to determine the current directory:

> CURRENT_DIR=$(cygpath -ma "${0}"/../)

> (I didn't write this script but I assume they did this for performance reasons.)

Glad you didn't... Because otherwise you would be the one to blame for the
$0 could easily NOT have any path, just a script name.

> But anyway, as you can see ${0} always exists.

Only theoretically.
Practice is that noone will bet a buck on it.

> I looked at the other thread but don't see an immediate connection as
> that was checking for non-existing path members.

If you want to obtain a full name of a running script, you'd need something
like this:

XXX="$(cygpath -au "$0")"
SCRIPT_NAME="$(readlink -fn "${XXX:-$0}")"

This is almost platform-independent, even. To the extent of readlink -f option

Andrey Repin ( 17.09.2013, <00:19>

Sorry for my terrible english...

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list