O que é o diretório "//"?


12

Em várias máquinas Linux você pode

cd /

e

cd //

O shell diz que o diretório atual é '/' ou '//' depois de usar o comando correspondente.

Portanto, a pergunta é: qual é a diferença entre '/' e '//' e, se a resposta for 'sem diferença', por que '//' é mostrado diferentemente de '/'

BTW

cd ///
cd ////
cd /////

Todos resultam no shell dizendo que o diretório atual é '/'

Heres uma sessão de exemplo:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
Parece ser uma anomalia específica do bash. Se você tentar cd //em csh ou zsh e, em seguida, pwdele irá mostrar apenas '/'
Doug Harris

interessante - que lança alguma luz sobre ela
Sylvanaar

1
Para comparação: cd //usr/binfornece "// usr / bin", mas cd /usr//binfornece "/ usr / bin" (no Bash).
Pausado até novo aviso.

Respostas:


14

Vamos perguntar ao homem (Chester Ramey):

E10) Por que 'cd //' deixa $ PWD como '//'?

O POSIX.2, em sua descrição de 'cd', diz que três ou mais barras principais podem ser substituídas por uma única barra ao canonizar o diretório de trabalho atual.

Presumo que isto seja para compatibilidade histórica. Certas versões do Unix e sistemas de arquivos de rede anteriores usavam caminhos no formato // hostname / path para acessar 'path' no servidor 'hostname'.


Muito melhor resposta do que a (boa já bastante) um de John T.
innaM

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.