cd - (cd 连字符) 有什么作用?

Dan*_*Dan 23 command-line cd-command

cd -今天错误地输入了终端,我收到一条错误消息:

bash: cd: OLDPWD not set
Run Code Online (Sandbox Code Playgroud)

不幸的是,man cd不存在。

No manual entry for cd
Run Code Online (Sandbox Code Playgroud)

它实际上有什么作用?

Avi*_*Raj 25

cd - 在旧的和新的当前工作目录之间切换。

avinash@avinash:~$ cd -
bash: cd: OLDPWD not set
avinash@avinash:~$ cd ~/Desktop
avinash@avinash:~/Desktop$ pwd
/home/avinash/Desktop
avinash@avinash:~/Desktop$ cd -
/home/avinash
avinash@avinash:~$ 
Run Code Online (Sandbox Code Playgroud)

也可以看看,

avinash@avinash:~$ echo $OLDPWD

avinash@avinash:~$ cd ~/Desktop
avinash@avinash:~/Desktop$ echo $OLDPWD
/home/avinash
avinash@avinash:~/Desktop$ cd d
avinash@avinash:~/Desktop/d$ echo $OLDPWD
/home/avinash/Desktop
avinash@avinash:~/Desktop/d$ 
Run Code Online (Sandbox Code Playgroud)

$OLDPWD变量存储前一个当前工作目录的路径。


Oli*_*Oli 10

Avinash Raj 的回答是完全正确的,但至于手动输入,您可以获取 POSIX 手册页,然后man cd就可以使用了:

sudo apt-get install manpages-posix
man cd
Run Code Online (Sandbox Code Playgroud)

告诉你这一切的是操作数部分:

-      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.
Run Code Online (Sandbox Code Playgroud)