Linux cd ..命令


9

说我是否需要做很多事情:

cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/

有没有更快的方法可以使您不必总是../../../../多次输入?有创意吗?


2
为什么不只是执行cd ../../../..并完成它?
Red Cricket

8
您可能会喜欢pushdpopd甚至cd -
jscott 2013年

1
如果您走得太远,则根据文件夹的深度,仅对cd / actual / path / you / want有意义。
Drew Khoury 2013年

这比付出的努力多得多。如果要在目录之间移动,则更容易使用完整路径指定或仅使用cd -转到最后一个目录)。通常alias h="history|grep",我可以使用历史记录输入快捷方式代替。类似于h foo3,然后!450重复执行该命令。
ewwhite

打开另一个终端窗口,根本不要键入cd ../../../ ..
Matt Matt

Answers:


18

这样做的经典方法是设置CDPATH变量。在您的情况下,可以将其设置为.:../../../../.:/path/to/the/parent/of/foo达到所需的效果。然后,您可以简单地执行操作cd foo/sub1/bar/dest并到达所需的位置。

这样做的优点是的制表符补全cd也可以查看$CDPATH并可以神奇地工作。


9

您可以使用自动跳转功能,该功能会自动从先前的cd命令中学习,并且下次您只需从完整路径中指定唯一的字符串即可。例如 j fooj foo1j foo2


7

您可以通过在bash配置文件(〜/ .bashrc或/etc/bash.bashrc)中添加别名来为这些命令创建快捷方式。

alias cdd="cd ../../../../"

然后,当您键入时cdd,它将执行该命令。


3
是的,否则function cdd () { cd ../../../../$1/bar/dest ; },这样的话,你可以只输入例如cdd foocdd foo2
Andrew Schulman

0

我最近遇到了https://github.com/rupa/z,它使您可以跳转到regex最近使用的目录。因此,您可以执行以下操作:

z foo3.*dest

代替:

cd ../../../../foo3/sub1/bar/dest/

(只要您之前访问过该目录,并且最近/经常使用的匹配该正则表达式)

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.