O que é o diretório barra dupla (//)?

24

Por engano, digitei cd // em vez de cd / . Para minha surpresa, o diretório atual apareceu como // .

O que é esse diretório? Por que existe?

apple@snipped $ pwd
/home/apple
apple@snipped $ cd /
apple@snipped $ pwd
/
apple@snipped $ cd //
apple@snipped $ pwd
//
apple@snipped $ cd ///
apple@snipped $ pwd
/
    
por Zabba 29.01.2011 / 02:57

1 resposta

37

// é geralmente o mesmo que / . /// deve ser o mesmo que / .

ls teria mostrado que cd // levou você ao diretório raiz, o mesmo que cd / faz.

$ cd /
$ ls
bin
boot
dev
...
$ cd //
$ ls
(same as above)

A maneira técnica de confirmar que eles são definitivamente o mesmo diretório é:

$ cd /
$ stat -c "%i" .
2
$ cd //
$ stat -c "%i" .
2

eles imprimirão o mesmo número de inode, o que significa que são a mesma coisa.

Os detalhes são documentados na especificação de definição de nome de caminho POSIX :

  

Um nome de caminho que consiste em uma única barra deve ser resolvido no diretório raiz do processo. Um nome de caminho nulo não será resolvido com sucesso. Um nome de caminho que comece com duas barras sucessivas pode ser interpretado de uma maneira definida pela implementação, embora mais de duas barras sejam tratadas como uma única barra.

    
por Mikel 29.01.2011 / 03:03

Tags