Diferença entre diretórios / e // no bash OSX

3

Eu estava trabalhando no terminal bash do meu sistema (OSX 10.8.3 / bash versão 3.2.48 (1) -release (x86_64-apple-darwin12)) e acidentalmente digitei "cd //" em vez de "cd / "para voltar ao diretório raiz.

O mais estranho foi que eu levei para "//" que, quando eu listei, era exatamente como "/".

Então minhas perguntas são:  Existe alguma diferença semântica entre esses dois caminhos?
 E se alguma coisa é o propósito desses dois caminhos?  e / ou é um bug?

    
por Justin Ohms 17.04.2013 / 22:08

1 resposta

5

No Unix e derivados, barras múltiplas seguindo uma a outra carregam o mesmo significado que uma barra. O OS X é certificado Unix e, assim, segue essa especificação.

A partir da Única especificação Unix sobre o nome do caminho :

[A path] has an optional beginning slash, followed by zero or more filenames separated by slashes. A pathname may optionally contain one or more trailing slashes. Multiple successive slashes are considered to be the same as one slash.

O único caso especial é um caminho que começa com // . Sua interpretação depende da implementação (consulte Resolução do nome do caminho no SUS ):

A pathname that begins with two successive slashes may be interpreted in an implementation-defined manner, although more than two leading slashes shall be treated as a single slash.

    
por 17.04.2013 / 22:15

Tags