返回外壳中的上一个目录


305

有没有一种方法可以返回到我们之前使用bash,tcsh而不使用push / popd的目录?我想输入“ back”之类的内容,然后返回到我以前所在的目录。

编辑:

“ cd-”有效,但仅适用于当前目录和先前目录。无论如何,我可以像在Web浏览器中一样返回到上一个先前的目录吗?

问候


1
如下所述,您可以使用“ pushd”和“ popd”来实现。
2010年

8
只是附带说明“ cd-”转到用户默认目录(/ home / username)
sdaffa23fdsf 2012年

1
最佳答案imho:unix.stackexchange.com/a/180640/158177提供cd -1到cd -9,我认为这是OP要求的
Titou 2016年

Answers:


412

cd - (返回上一个目录)

如果您希望能够转到其他先前的目录,则无法立即使用。但是请检查此脚本和说明:

BASH中已访问目录的历史记录

cd命令照常工作。新功能是最近10个目录的历史记录,并且cd命令扩展为显示和访问它。cd-(或直接按ctrl + w)显示历史记录。在每个目录名称的前面,您都会看到一个数字。带有所需编号的cd -num从历史记录跳转到相应的目录。


20
也被
推动

6
@lorenzog:lydonchandra在他的问题中说:“不使用推入式/弹出式”
Snark

@ ogc-nick以cd --类似菜单的方式使用它,您应该使用提到的脚本
Ram

1
@ ogc-nick不,不是。在--简单的区分命令和参数的选项(参见这篇文章)。因为后面没有参数--,所以最后的命令只是cd切换到您的主目录。那可能是先前的第二个目录,但这只是一个巧合。
Griddo

语法糖太多了
BugWhisperer

23

您也可以使用variable cd $OLDPWD。这也可以在外壳脚本中使用。


6
$ OLDPWD维护您来自的最后一个目录,该目录对于脚本很有用。我在cp命令中经常使用$ OLDPWD。例如cp -v $ OLDPWD / file。
尼尔·怀特曼

1

对于Windows(包括Node.js逗号提示控制台案例)不起作用cd-将您上移一个目录有效

cd ..

3
cd ..移至上级目录,这不是要讨论的主题。
ViaSat

1
这里不是bash,不是Windows
Timo

0

我发现最简单的方法是使用此.bashrc强大的编辑功能:https : //github.com/wting/autojump。您可以“标记”导航到的文件夹,为它们提供一个易于记忆的速记名称(我的建议;文档中未包含上述内容),例如Pics for Pictures等。“跳转”可将您返回到您的文件夹“标记”和“标志”列出文件夹已添加到“堆栈”(与PUSHD流行 d),与添加的优点是,你的标记保持不变从一个会话到下一个,循环往复。

我尚未在多个硬盘上进行尝试,但是结果应该与使用单个卷的结果相似。

赖特


-1

如果您不喜欢目录树并想备份,那cd ..是我个人的最爱。您可以通过cd ..上一个目录,cd ../..两个和cd ../../..三个目录等轻松地在树的一个分支中跳转。您还可以使用相同的命令(例如cd ../../examplecd ../../../example/example等等)在不同的分支上进行上下移动。就像其他人提到的那样,在目录之间来回移动cd -还是$OLDPWD最好的选择。


有什么特别的原因为什么会被否决?它包含正确的答案,尽管可能不是唯一的答案。
亚当·埃里克森


-2

我认为cd ..可能会有所帮助。如果ls -a在任何目录中都执行a ,则会看到有两个条目:一个名为“。”。另一个名为“ ..”;单点是您已经在目录中的参考,而双点是路径中的上一个目录。


22
..不是上一个目录,而是父目录。
Der Hochstapler,2012年

4
即使没有正确回答问题,此回答也将提供有用的信息。因此,对此进行否定投票是没有意义的,我对此表示支持。
Titou

1
这不是伯克利,没有为参与而设的特别奖项
纳森彻尔(Nathanchere)'17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.