O que significa // em um caminho?

8

Eu estava trabalhando no meu terminal, quando eu digitava errado com cd na raiz ( / ). Acidentalmente, digitei // e recebi no terminal:

root@weblocalhost://#

Quando digito pwd , obtenho a resposta // , mas quando digito ls -s eu tenho a mesma lista que no diretório / .

Quando você digita mais de 2, ou seja, /// você recebe:

root@weblocalhost:/#

Sempre 1 / , exceto para 2. Há alguma diferença e o que é // ?

    
por Dimitris Theodoridis 28.03.2013 / 17:48

2 respostas

5

/ é equivalente a //

De a especificação POSIX (grifo nosso):

  

3.267 Nome do caminho

     

Uma string usada para identificar um arquivo. Dentro do contexto de   POSIX.1-2008, um nome de caminho pode estar limitado a {PATH_MAX} bytes, incluindo   o byte nulo de terminação. Tem início opcional <slash>   caracteres, seguidos por zero ou mais nomes de arquivos separados por <slash>   personagens. Um nome de caminho pode conter, opcionalmente, um ou mais    <slash> caracteres. Vários caracteres <slash> sucessivos são   considerado igual a um <slash> , exceto no caso de   exatamente dois caracteres <slash> principais.

E :

  

4.12 Resolução do nome do caminho

     

...
  Um nome de caminho que consiste em um único <slash> deve resolver para a raiz   diretório do processo. Um nome de caminho nulo não deve ter sucesso   resolvido. Se um nome de caminho começar com dois caracteres <slash> sucessivos,   o primeiro componente seguindo os principais caracteres <slash> pode ser   interpretada de forma definida pela implementação, embora mais de   os dois principais caracteres <slash> devem ser tratados como um único <slash>   personagem.

Para uma boa discussão sobre exceções (cygwin e diretórios), consulte: por Panther 28.03.2013 / 17:58

3

Você pode adicionar várias barras a um diretório e isso não alterará nada.

Por exemplo esses três comandos fazem o mesmo:
cd /home e cd /home/ e cd /home//

Depois de qualquer um desses, meu diretório de trabalho atual está configurado como / home (verifique com pwd ).

Eu acho que você tem seu prompt configurado para fazer algo inteligente e que você teve um comportamento imprevisto. O que você ganha quando você echo $PS1 ?

Link para um comentário em link que pode explicar isso.

    
por Hennes 28.03.2013 / 17:53