Por que o '//' é exibido apenas para diretórios de primeiro nível? [duplicado]

-2

Para o diretório raiz, um // será exibido no prompt:

───────────────────────────────────────────────────────────────────────────────
rick@alien:~$ cd /
───────────────────────────────────────────────────────────────────────────────
rick@alien:/$ cd //
───────────────────────────────────────────────────────────────────────────────
rick@alien://$ cd ///
───────────────────────────────────────────────────────────────────────────────
rick@alien:/$ 

Você pode mudar para o diretório // . Mas quando você muda para o diretório /// , você volta para / .

Os subdiretórios não são exibidos da mesma maneira:

───────────────────────────────────────────────────────────────────────────────
rick@alien:~$ cd /usr
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr$ cd /usr//src
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr/src$ 
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr/src$ cd //usr
───────────────────────────────────────────────────────────────────────────────
rick@alien://usr$ 
───────────────────────────────────────────────────────────────────────────────
rick@alien://usr$ cd ///usr
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr$ 

Como você vê, // é automaticamente convertido em um único / em subdiretórios. No entanto, a regra não se aplica aos diretórios de primeiro nível.

Por que // é exibido para diretórios de nível superior, mas não para subdiretórios?

    
por WinEunuuchs2Unix 15.02.2018 / 02:45

1 resposta

3

Uma segunda barra não tem significado e o comportamento adequado é para o sistema tratá-la como se fosse uma única barra.

Seu shell está normalizando o caminho para que ele seja mostrado sem a barra adicional em todos os casos, exceto um: quando o caminho começa com apenas duas barras. O shell está preservando a segunda barra neste caso, de acordo com os padrões POSIX, que permitem que caminhos iniciados por duas barras tenham um significado especial definido pelo contexto. Neste contexto, no entanto, não há um significado especial e acaba sendo ignorado, mesmo que o shell esteja preservando-o.

    
por thomasrutter 15.02.2018 / 12:18