Ho scaricato lessn sul mio server web e l'ho decompresso.
Contiene una cartella denominata -
. Pensavo di sapere come affrontarlo, ma non lo so.
Ho provato cd -- -
, ma ciò non ha l'effetto desiderato. Anche l'uso delle virgolette non sembra influire su di esso. Ho messo tagli dappertutto, inutilmente.
Qual è il modo corretto per passare a questa cartella?
Risposta accettata:
Vuoi evitare che sia un parametro, quindi cerchiamo di anteporre qualcosa ad esso. È possibile accedere alla directory corrente con .
, quindi la sottocartella -
si può accedere in alternativa con ./-
.
cd ./-
Il motivo per cui cd -- -
non funziona è perché questo è implementato in modo diverso se confronti rm
(vedi man rm
) su cd
(vedi man bash
o man cd
), cd
ha un'interpretazione diversa che vede -
come parametro (vedi man bash
o man cd
).
Va inoltre notato che cd
è una funzione incorporata nella shell, come si può leggere in questa risposta:
cd
non è un comando esterno:è una funzione incorporata nella shell. Viene eseguito nel contesto della shell corrente e non, come fanno i comandi esterni, in un contesto fork/exec'd come processo separato.
Questo spiega perché l'implementazione è diversa, poiché Bash e Coreutils sono due cose diverse.
Supponiamo solo che non ci crederesti, come lo confermiamo? Usa which
e 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