'cd - '代表什么?

App*_*rew 74 linux bash shell

在今天的bash shell脚本中,我注意到脚本末尾的下面的命令.我知道什么是,cd但我不知道它之后的冲刺的重要性.

cd -
Run Code Online (Sandbox Code Playgroud)

这是什么意思?谷歌天真地截断,-所以我无法找到它的答案.

San*_*nda 98

如果将单个破折号指定为参数,则它将替换为值OLDPWD.

OLDPWD被设定cd的命令,这是以前的工作目录.

  • 谢谢。这很短,并且从程序员的角度来看是完整的。 (2认同)

Mar*_*niz 17

cd - 返回到之前的目录.

例如:

marcelo@marcelo:~$ cd /opt
marcelo@marcelo:/opt$ cd /usr/bin
marcelo@marcelo:/usr/bin$ cd -
/opt
marcelo@marcelo:/opt$ 

我在/ opt,更改为/ usr/bin,然后返回/ opt cd -


小智 10

cd - 带你回到最后一个目录.

$ cd ~/Desktop
$ pwd
/Users/daknok/Desktop
$ cd /
$ pwd
/
$ cd -
$ pwd
/Users/daknok/Desktop
Run Code Online (Sandbox Code Playgroud)


Cfr*_*eak 6

cd - 返回到您以前的目录.

说我在/usr/,我输入cd /var/local/someplace/else

然后我用cd -我会回来/usr


pho*_*xis 5

从手册

- 的参数相当于$ OLDPWD.如果使用CDPATH中的非空目录名,或者 - 是第一个参数,并且目录更改成功,则新工作目录的绝对路径名将写入标准输出.如果目录已成功更改,则返回值为true; 否则是假的

因此,-它等同于$OLDPWD,它保存shell所在的最后一个目录,并由前一次cd调用设置.