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