I'm using the windows port of bash known as win-bash, and based on what it says about paths:
One important difference is the handling of drives: cygwin uses its installation directory as root dir and links all drives in the pseudo subdir /cygdrive. win-bash uses a diffent method: drives are included in paths, like on windows (e.g. c:/Winnt/System32). The root directory / is mapped to the root directory of the current drive. Examples: ls c:/winnt - shows the content of the directory c:/winnt cd c:/; ls /winnt - changes current drive to c: and shows the content of the directory c:/winnt cd d:/; ls /winnt- changes current drive to d: and shows the content of the directory d:/winnt There are some other differences, most of them have been added to simplify the usage of existing un*x shell scripts: If a shell script starts with an interpreter specification like #!/path/interpreter, the interpreter is searched in the PATH environment instead of /path. E.g. a Perl script starting with #!/bin/perl will be started with perl.exe from the PATH environment variable. win-bash doesn't use any dlls or registry keys
Detecting non-root paths seem to work such as:
if [ -d "C:/bash" ]; then echo "yes"; else echo "no"; fi
However, detecting root paths like so if [ -d "C:/" ]; then echo "yes"; else echo "no"; fi
does not work. This also includes C:
and /
.
Perhaps there is another syntax bash scripting syntax to detect the existence of paths?
C:/.
andC:/bash/..
work?