Na maioria das vezes, os slahes repetidos em um caminho são equivalentes a uma única barra . Esse comportamento é exigido pelo POSIX e a maioria dos aplicativos segue o exemplo. A exceção é que “um nome de caminho que começa com duas barras sucessivas pode ser interpretado de uma maneira definida pela implementação” (mas ///foo
é equivalente a /foo
).
A maioria dos unices não faz nada de especial com duas barras iniciais. O Linux, em particular, não funciona. O Cygwin faz: //hostname/path
acessa uma unidade de rede (SMB).
O que você está vendo não é, na verdade, o Linux fazer algo de especial com //
: o rastreamento de diretório atual do bash. Comparar:
$ bash -c 'cd //; pwd'
//
$ bash -c 'cd //; /bin/pwd'
/
O Bash está tomando a precaução de que o sistema operacional pode estar tratando //
especialmente e mantendo-o. Dash faz o mesmo. Ksh e zsh não quando estão rodando no Linux, eu acho que (eu não verifiquei) eles têm uma configuração em tempo de compilação.