Apa yang dilakukan dengan cd - (cd hyphen)?

14

Saya salah mengetik cd -terminal hari ini, dan saya mendapat pesan kesalahan:

bash: cd: OLDPWD not set

Dan sayangnya, man cdtidak ada.

No manual entry for cd

Apa yang sebenarnya ia lakukan?

Dan
sumber
3
cdadalah Bash builtin. Oleh karena itu didokumentasikan dalam man bash-builtins, bukan halamannya sendiri. Ini berlaku untuk semua bawaan Bash lainnya. Anda dapat mengatakan itu adalah builtin karena bash: di depan pesan kesalahan.
kiri

Jawaban:

17

cd - beralih antara direktori kerja lama dan baru sekarang.

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd -
bash: cd: OLDPWD tidak disetel
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: ~ $ 

Lihat juga,

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 $ 

The $OLDPWDvariabel toko jalan direktori kerja sebelumnya hadir.

Avinash Raj
sumber
8

Jawaban Avinash Raj sepenuhnya benar tetapi untuk entri manual, Anda bisa mendapatkan halaman manual POSIX dan kemudian man cdakan berfungsi:

sudo apt-get install manpages-posix
man cd

Bit yang memberi tahu Anda semua ini adalah bagian OPERANDS:

-      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.
Oli
sumber