¿Qué es el directorio "//"?


12

En varias máquinas Linux puedes

cd /

y

cd //

El shell dirá que el directorio actual es '/' o '//' después de usar el comando correspondiente.

Entonces la pregunta es: ¿Cuál es la diferencia entre '/' y '//', y si la respuesta es 'no hay diferencia', entonces por qué '//' se muestra de manera diferente a '/'?

Por cierto

cd ///
cd ////
cd /////

Todos los resultados en el shell que dice que el directorio actual es '/'

Aquí hay una sesión de ejemplo:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
Esto parece ser una anomalía específica de bash. Si lo intentas cd //en csh o zsh y luego pwdse mostrará solo '/'
Doug Harris

interesante - que arroja algo de luz sobre ello
sylvanaar

1
Para la comparación: cd //usr/binda "// usr / bin", pero cd /usr//binda "/ usr / bin" (en Bash).
Pausado hasta nuevo aviso.

Respuestas:


14

Preguntemos al hombre mismo (Chester Ramey):

E10) ¿Por qué 'cd //' deja $ PWD como '//'?

POSIX.2, en su descripción de 'cd', dice que tres o más barras inclinadas pueden reemplazarse con una barra oblicua al canonizar el directorio de trabajo actual.

Esto es, supongo, por compatibilidad histórica. Ciertas versiones de Unix, y los primeros sistemas de archivos de red, usaban rutas de la forma // nombre de host / ruta para acceder a 'ruta' en el servidor 'nombre de host'.


Respuesta mucho mejor que la (ya bastante buena) de John T.
innaM

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.