有没有一种方法可以返回到我们以前使用bash,tcsh而不使用push / popd的先前目录?
我想输入“ back”之类的东西并返回到我所在的先前目录。 br />
编辑:

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

注意事项

评论

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

只是附带说明“ cd-”转到用户默认目录(/ home / username)
最佳答案imho:unix.stackexchange.com/a/180640/158177提供cd -1到cd -9,我认为这是OP要求的

#1 楼

cd -(返回到先前的目录)

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

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


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


评论


也推和弹出可能有用

– lorenzog
2010-2-25在8:55

@lorenzog:lydonchandra在他的问题中说:“不使用push / popd”

–蛇
2010-2-25在9:19

@ ogc-nick用于使用此CD-以类似菜单的方式,您应该使用所提到的脚本

– Ram
16年2月11日在6:13

@ ogc-nick不,不是。 -只是将命令及其选项与参数分开(请参阅此文章)。因为在-之后没有任何参数,所以最终命令只是cd,它将切换到您的主目录。那可能是先前的第二个目录,但这只是一个巧合。

– Griddo
18年8月8日在9:02

语法糖太多了

–老男孩
18年6月24日在2:00

#2 楼

您还可以使用变量cd $OLDPWD。也可以在shell脚本中使用。

评论


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

–尼尔·怀特曼(Neil Wightman)
2015年1月9日在9:12



值得指出的是,使用cd $ OLDPWD不会将任何内容打印到标准输出,而cd-似乎通常可以。对于大多数脚本来说,这是一个更好的解决方案。

– Bernardo Sulzbach
20 Mar 6 '20 at 21:10

我不这么认为!!! cd-在交互式shell中工作时会很方便,因此您无需编写长命令,也不必在任何地方获得反馈。但是对于脚本,您应该绝对使用$ OLDPWD,因为脚本通常不希望cd将任何内容输出到stdout!同样,$ OLDPWD的值不必仅用于返回。例如,您可以将其与ls一起使用,或与$ HOME或其他目录进行比较。 POSIX表示cd-等效于cd“ $ OLDPWD” && pwd。

– Ales Dolecek
20 Mar 9 '20 at 13:31



#3 楼

我发现最简单的方法是使用此.bashrc强大的编辑功能:https://github.com/wting/autojump。记住(我的建议;上述内容不在文档中),例如Pics for Pictures等。“跳转”将使您返回到“已标记”的文件夹,“标记”列出了已添加到“堆栈”的文件夹(与push和popd一样),其附加优点是您的标记在一个会话到下一个会话之间保持不变。

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

S Wright

评论


感谢您的替代解决方案。我将尝试使用此自动跳转工具。

–斯蒂芬·罗兰(Stephane Rolland)
20年6月17日在15:15

#4 楼

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

评论


..不是上一个目录,它只是父目录。

–霍赫斯塔普勒(Der Hochstapler)
2012-12-10 10:28

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

–头投
16-9-29在12:36