14 votos

Doble carpeta root vs sola carpeta root

En mi Linux, bash, tengo acceso a un "doble root" de la carpeta que se denota por dos barras diagonales:

tomas:~ $ cd /
tomas:/ $ ls
bin/ cdrom@ ...
tomas:/ $ cd //
tomas:// $ ls 
bin/ cdrom@ ...

El contenido de la carpeta y sus subcarpetas es idéntica a la "normal" de una sola barra de root. La doble barra no desaparece cuando puedo acceder a sus subcarpetas. El annomaly que no se repita con tres o más barras; estos son simples sinónimos de la root:

tomas:// $ cd home/tomas
tomas://home/tomas $ cd ///
tomas:/ $ cd ////
tomas:/ $

¿Qué tipode lugar es? Es un bug? ¿Alguien puede explicar la annomaly?

18voto

Damian Powell Puntos 162

Desde Bash FAQ E10:

E10) ¿por Qué " cd //' dejar $PWD '//'?

POSIX.2, en su descripción de 'cd', dice que tres o más líder barras puede ser reemplazado con un solo de slash cuando canonicalizing la directorio de trabajo actual.

Esto es, supongo, para la compatibilidad histórica. Ciertas versiones de Unix, y principios de los sistemas de archivos de red, rutas usadas de la forma //nombre/ruta de acceso 'camino' en el servidor 'hostname'.

1voto

Showpath Puntos 36

"No es un bug, es una característica!"

Usted todavía está en el mismo directorio root. No sé el origen de esto, pero sospecho que puede tener algo que ver con la construcción de cadenas para las rutas absolutas. Si alguien sabe de seguro, de la tubería.

0voto

Dee Puntos 111

Varias barras son simplemente ignoradas por las herramientas que han utilizado y siempre llegar a la misma carpeta root.

0voto

Phil Puntos 1

Varias barras son tratados como una sola barra de ruta-a los efectos de la resolución.

Lo que estamos viendo en el prompt del shell es un artefacto de bash PS1 manipulación (véase la sección "INDICADORES" en la página del manual de bash).

[root@linux /]# cd /    ; echo $PWD
/
[root@linux /]# cd //   ; echo $PWD
//
[root@linux //]# cd /// ; echo $PWD
/
[root@linux /]# cd //// ; echo $PWD
/

El resultado es sólo una cuestión de presentación; siempre estás en el mismo directorio root. Esto se puede verificar observando /proc/$$/root.

[editar] Bueno, yo no lo sabía: http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11 El significado de "//" se deja sin definir por las normas, pero "///" y más barras son equivalentes a "/".

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: