Descargué lessn en mi servidor web y lo descomprimí.
Contiene una carpeta llamada -
. Supuse que sabía cómo lidiar con eso, pero no lo sé.
Probé cd -- -
, pero eso no tiene el efecto deseado. El uso de comillas tampoco parece afectarlo. Puse barras por todas partes, sin éxito.
¿Cuál es la forma correcta de cambiar a esta carpeta?
Respuesta aceptada:
Desea evitar que sea un parámetro, por lo que tratamos de anteponerle algo. Se puede acceder al directorio actual con .
, por lo tanto, la subcarpeta -
se puede acceder alternativamente con ./-
.
cd ./-
La razón por la que cd -- -
no funciona porque esto se implementa de manera diferente si compara rm
(ver man rm
) a cd
(ver man bash
o man cd
), cd
tiene una interpretación diferente que ve -
como parámetro (ver man bash
o man cd
).
También se debe tener en cuenta que cd
es una función incorporada de shell, como se puede leer en esta respuesta:
cd
no es un comando externo, es una función integrada de shell. Se ejecuta en el contexto del shell actual y no, como lo hacen los comandos externos, en un contexto de bifurcación/ejecutado como un proceso separado.
Esto explica por qué la implementación es diferente, ya que Bash y Coreutils son dos cosas diferentes.
Supongamos que no creerías esto, ¿cómo lo confirmamos? Usa which
y type
.
$ which cd && type cd
which: no cd in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.2:/usr/games/bin
cd is a shell builtin
$ which rm && type rm
/bin/rm
/bin/rm is /bin/rm