Pode ser considerado também.
No Linux, //
não significa nada - várias barras consecutivas são recolhidas para um, em qualquer lugar no caminho, incluindo o início. A alteração do diretório para //
coloca você em /
, já que a execução readlink /proc/self/cwd
diria; da mesma forma, /usr//local///bin
é recolhido para /usr/local/bin
.
No entanto, alguns outros sistemas semelhantes ao Unix, como o Cygwin ou o antigo Apollo Domain / OS, usam o //
prefixo para caminhos de rede como //fileserver/path/to/data
. O POSIX também permite isso.
Por vários motivos, o shell bash monitora o diretório atual por conta própria (além do rastreamento fornecido pelo sistema operacional) e contém código que impede que o //
inicial seja recolhido , para permanecer compatível com tais sistemas. O "recurso" é que bash fornece rastreamento mais intuitivo do diretório atual, por exemplo, quando cd
'em um symlink, bash mostrará o caminho que você espera , mesmo que o kernel pense diferente. O "bug" é que bash permite //
mesmo em sistemas que não o usam.