¿Qué es el directorio de doble barra (//)?

29

Escribí por error en cd //lugar de cd /. Para mi sorpresa, el directorio actual apareció como //.

¿Qué es ese directorio? ¿Por qué existe?

apple@snipped $ pwd
/home/apple
apple@snipped $ cd /
apple@snipped $ pwd
/
apple@snipped $ cd //
apple@snipped $ pwd
//
apple@snipped $ cd ///
apple@snipped $ pwd
/
Zabba
fuente

Respuestas:

42

//suele ser lo mismo que /. ///debe ser lo mismo que /.

lste habría mostrado que te cd //llevó al directorio raíz, lo mismo que cd /hace.

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

La forma técnica de confirmar que definitivamente son el mismo directorio es:

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

imprimirán el mismo número de inodo, lo que significa que son lo mismo.

Los detalles sangrientos están documentados en la especificación POSIX Pathname Resolution :

Un nombre de ruta que consta de una barra inclinada se resolverá en el directorio raíz del proceso. Un nombre de ruta nulo no se resolverá con éxito. Un nombre de ruta que comience con dos barras sucesivas puede interpretarse de una manera definida por la implementación, aunque más de dos barras diagonales principales se tratarán como una sola barra diagonal.

Mikel
fuente