我经常发现自己在两个目录之间循环以执行不同的任务。目录之间并不总是有易于使用的相对路径。因此,必须指定一个本质上是以前的工作目录的目录路径是相当麻烦的。
有没有一个命令可以让我轻松返回到以前的工作目录?
答案1
Bash 使用 shell 变量$OLDPWD
(顾名思义)存储当前工作目录的旧值$PWD
。
另外,手册页条目Bourne shell 内置组件有这样的说法cd
:
的参数
-
相当于$OLDPWD
。
这意味着人们可以简单地输入
$ cd -
意思是
$ cd $OLDPWD
答案2
您可以使用cd -
或cd $OLDPWD
。但我建议使用pushd
和popd
。这些实用程序保留所谓的目录堆栈。
pushd dir
:您将更改目录dir
并将目录保存在堆栈中。如果您执行另一个操作pushd dir4
,那么dir4
将被添加到目录堆栈中。
popd
:它允许您撤消目录更改。通过发出popd
命令,堆栈中压入的最后一个目录(即您的当前目录)将被删除,您将目录更改为成为堆栈顶部的第二个目录。
dirs -v
:查看目录堆栈的内容。
如果您了解堆栈概念,那么它会很容易理解。