如何撤消最后一个cd命令?


77

cd对另一个目录执行操作后,是否可以跳回到上一个工作目录?

我的用例是,我正在遍历Java项目的目录结构,并且期望当前目录只有一个子目录。所以,I型cd和命中TabEnter相当快。但是,Tab失败了,正如我错误地期望的那样,实际上有更多子目录。因此,现在,我刚刚执行cd,并且现在位于我的主目录中,而不是Java项目中。有没有办法“撤消”此操作cd并跳回到我所在的目录?

Answers:


130

cd -无论以前在哪里,您都可以使用它来返回到先前的位置。


10
好吧...即使在Ubuntu上使用多年之后,我也不知道。谢谢
andybleaden

19

cd - 对于返回上一级非常有用,但是如果您想返回几个级别,请查看以下脚本:

acd_func.sh

这很棒。cd --以查看您的历史记录,cd -3例如返回3个级别。


哇...地理位置链接。现在有一个我很久没有看到的URL。<插入Obi-wan JPG>
Michael Butler

1
此评论的要点。<jpg Yoda insert>
Donbhupi 2015年


5

另外,cd ..可以带您回到工作目录的目录,然后如有必要,可以重复执行该命令,直到到达您想要的位置为止。实际上,每次被唤起时,它都会带您返回目录树,如果您继续重复执行该命令,该目录树最终将在/(根目录)完成。

此相反cd -实际上使得以前的工作目录当前工作目录,(这被称为.文件系统中的准确位置可以找到),以及pwd

因此,无论cd ..cd - 导航目录树时,可以在不同情况下使用,尽管它们的不同在上述方面。有趣地尝试了这两个命令之后,最有用的命令是cd,它将返回到主文件夹。


-1

进行此操作的最佳方法是cd -,但是,如果您想一次跳过很多级别,则最好使用cd ..一个级别,,cd ../..两个,cd ../../..三个级别等等。脚本:

#!/bin/bash
printf "Number of folders to move back: "
read TIMES
BACKCHARS=../
BACK=$(for i in `seq $TIMES`; do printf $BACKCHARS; done)
cd $BACK

1
cd在脚本中运行不会影响父外壳。您需要将其放在shell函数中以使其有用。
wjandrea

像这样:up(){ local n="$1"; while ((n--)); do path+='../'; done; cd "$path"; }
wjandrea
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.