Eu estava trabalhando em meu terminal quando escrevi incorretamente ao cd
fazer root ( /
). Sem querer, digitei //
e entrei no terminal:
root@weblocalhost://#
Quando digito pwd
, recebo resposta //
, mas quando digito, ls -s
recebo a mesma lista do /
diretório.
Quando você digita mais de 2, ou seja, ///
você obtém:
root@weblocalhost:/#
Sempre 1, /
exceto 2. Existe alguma diferença e //
para que serve?
Responder1
/
é equivalente a//
Dea especificação POSIX(enfase adicionada):
3.267 Caminho
Uma string usada para identificar um arquivo. No contexto do POSIX.1-2008, um nome de caminho pode ser limitado a {PATH_MAX} bytes, incluindo o byte nulo de terminação. Possui
<slash>
caracteres iniciais opcionais, seguidos por zero ou mais nomes de arquivos separados por<slash>
caracteres. Um nome de caminho pode conter opcionalmente um ou mais<slash>
caracteres finais.Vários caracteres sucessivos<slash>
são considerados iguais a um<slash>
, exceto no caso de exatamente dois<slash>
caracteres iniciais.
E:
4.12 Resolução de nome de caminho
...
Um nome de caminho que consiste em um único<slash>
deve resolver para o diretório raiz do processo. Um nome de caminho nulo não será resolvido com êxito.Se um nome de caminho começar com dois<slash>
caracteres sucessivos, o primeiro componente após os<slash>
caracteres iniciais poderá ser interpretado de uma maneira definida pela implementação, embora mais de dois<slash>
caracteres iniciais devam ser tratados como um único<slash>
caractere.
Para uma boa discussão sobre exceções (cygwin e diretórios), consulte:Como o Linux lida com vários separadores de caminho consecutivos (/home////nomedeusuário///arquivo)?
Responder2
Você pode adicionar várias barras a um diretório e isso não mudará nada. Por exemplo, todos esses três comandos fazem o mesmo:
cd /home
cd /home/
cd /home//
Depois de qualquer um desses, meu diretório de trabalho atual está definido como /home (verifique com pwd
).
EUadivinharque você tem seu prompt configurado parafaça algo inteligentee que você se deparou com um comportamento inesperado. O que você ganha quando você echo $PS1
?
Verificareste comentário em unix.stackexchange.como que pode explicar isso.