Estaba trabajando en mi terminal, cuando escribí mal while cd
para rootear ( /
). Accidentalmente, escribí //
y llegué a la terminal:
root@weblocalhost://#
Cuando escribo pwd
, obtengo respuesta //
, pero cuando escribo ls -s
obtengo la misma lista que en /
el directorio.
Cuando escribes más de 2, es decir, ///
obtienes:
root@weblocalhost:/#
Siempre 1 /
excepto 2. ¿Hay alguna diferencia y //
para qué sirve?
Respuesta1
/
es equivalente a//
Dela especificación POSIX(énfasis añadido):
3.267 Nombre de ruta
Una cadena que se utiliza para identificar un archivo. En el contexto de POSIX.1-2008, un nombre de ruta puede estar limitado a {PATH_MAX} bytes, incluido el byte nulo final. Tiene
<slash>
caracteres iniciales opcionales, seguidos de cero o más nombres de archivos separados por<slash>
caracteres. Opcionalmente, un nombre de ruta puede contener uno o más<slash>
caracteres finales.Varios<slash>
caracteres sucesivos se consideran iguales a uno<slash>
, excepto en el caso de exactamente dos<slash>
caracteres principales.
Y:
4.12 Resolución de nombre de ruta
...
Un nombre de ruta que consta de uno único<slash>
se resolverá en el directorio raíz del proceso. Un nombre de ruta nulo no se resolverá exitosamente.Si un nombre de ruta comienza con dos<slash>
caracteres sucesivos, el primer componente que sigue a los<slash>
caracteres principales puede interpretarse de una manera definida por la implementación, aunque más de dos<slash>
caracteres principales se tratarán como un solo<slash>
carácter.
Para una buena discusión sobre excepciones (cygwin y directorios), consulte:¿Cómo maneja Linux múltiples separadores de ruta consecutivos (/home////nombre de usuario///archivo)?
Respuesta2
Puede agregar varias barras diagonales a un directorio y no cambiará nada. Por ejemplo, estos tres comandos hacen lo mismo:
cd /home
cd /home/
cd /home//
Después de cualquiera de estos, mi directorio de trabajo actual está configurado en /home (verifique con pwd
).
Iadivinarque tiene su mensaje configurado parahaz algo inteligentey que te topaste con un comportamiento inesperado. ¿Qué obtienes cuando echo $PS1
?
Controlareste comentario en unix.stackexchange.comlo que puede explicarlo.