O que é o diretório “//”?

12

Em várias máquinas linux você pode

cd /

e

cd //

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

Então, a questão é: qual é a diferença entre '/' e '//', e se a resposta for 'nenhuma diferença', então por que '//' é mostrado diferente de '/'

BTW

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

Tudo resulta no shell dizendo que o diretório atual é '/'

Aqui está uma sessão de exemplo:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$
    
por sylvanaar 14.10.2009 / 19:19

2 respostas

14

Vamos perguntar o próprio homem (Chester Ramey):

E10) Why does 'cd //' leave $PWD as '//'?

POSIX.2, in its description of 'cd', says that three or more leading slashes may be replaced with a single slash when canonicalizing the current working directory.

This is, I presume, for historical compatibility. Certain versions of Unix, and early network file systems, used paths of the form //hostname/path to access 'path' on server 'hostname'.

    
por 14.10.2009 / 20:43
9

Não é um diretório real, é um problema específico do bash. É mencionado em The Linux Documentation Project .

    
por 14.10.2009 / 19:41