Cosa fa cd - (trattino cd)?


14

Ho digitato il cd -terminale per errore oggi e ho ricevuto un errore che diceva:

bash: cd: OLDPWD not set

E purtroppo man cdnon esiste.

No manual entry for cd

Cosa fa effettivamente?


3
cdè incorporato in Bash. È quindi documentato in man bash-builtins, anziché nella propria pagina. Questo vale per tutti gli altri built-in di Bash. Si può dire che è incorporato a causa del bash: davanti al messaggio di errore.
Kiri,

Risposte:


17

cd - passa dalla vecchia alla nuova attuale directory di lavoro.

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd -
bash: cd: OLDPWD non impostato
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd ~ / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ pwd
/ Home / avinash / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ cd -
/ Home / avinash
Avinash @ Avinash-Lenovo IdeaPad-Z500-: ~ $ 

Guarda anche,

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ echo $ OLDPWD

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd ~ / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ echo $ OLDPWD
/ Home / avinash
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ cd d
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop / d $ echo $ OLDPWD
/ Home / avinash / Desktop
Avinash @ Avinash-Lenovo IdeaPad-Z500-: ~ / Desktop / d $ 

La $OLDPWDvariabile memorizza il percorso della directory di lavoro attuale precedente.


8

La risposta di Avinash Raj è completamente corretta, ma per quanto riguarda l'inserimento manuale, è possibile ottenere le pagine del manuale POSIX e quindi man cdfunzionerà:

sudo apt-get install manpages-posix
man cd

Il bit che ti dice tutto questo è la sezione OPERANDI:

-      When a hyphen is used as the operand, this shall be equivalent to the command:

       cd "$OLDPWD" && pwd

which changes to the previous working directory and then writes its name.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.