Descobri que adicionar um período após o caminho da unidade raiz funciona conforme sugerido por ignis.
Estou usando a porta de bash do Windows, conhecida como win-bash, e com base no que ela diz sobre os caminhos:
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
Detectar caminhos não-raiz parece funcionar como:
if [ -d "C:/bash" ]; then echo "yes"; else echo "no"; fi
No entanto, a detecção de caminhos raiz assim if [ -d "C:/" ]; then echo "yes"; else echo "no"; fi
não funciona. Isso também inclui C:
e /
.
Talvez haja outra sintaxe de sintaxe bash para detectar a existência de caminhos?
Descobri que adicionar um período após o caminho da unidade raiz funciona conforme sugerido por ignis.
Solução alternativa: C:/.
e C:/bash/..
work?
Uma alternativa para o win-bash seria o winbash de aqui . Ele fez um trabalho melhor na detecção de caminhos da raiz. Ambos "C: /" e "/" retornam sim nos testes. Apenas "C:" falhou.
Além disso, eu gosto que o winbash lida com os familiares combos ctrl -key que estamos acostumados a gostar ctrl - p , ctrl - a , ctrl - e , etc. (no win-bash apenas retorna "^ P" na tela) .
Tags windows path bash-scripting