递归 cd 到父目录

waf*_*ffl 4 zsh

我经常使用 Wordpress,在编辑器中编辑样式表,其中“在终端中打开”命令将在以下位置启动 shell:(例如):

/home/user/work/project/wp/wp-content/themes/theme_name/_/inc/scss
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何方法可以轻松地转到此文件夹:

/home/user/work/project
Run Code Online (Sandbox Code Playgroud)

无需键入cd ../../../../../../../,并且是否有某种方法可以通配符父目录的数量,直到它到达名为project?的文件​​夹。(我知道我可以简单地cd ~/work/project但想知道我是否可以从当前子文件夹转到其他特定的父文件夹)

在伪代码描述中,我想知道是否有什么办法keep going back to the parent until reaching the first folder named ______

同样的问题也可以更深入地应用,其中cd **/desired_folder+Tab生成我正在寻找的子文件夹/文件列表,有没有办法在另一个方向上做到这一点?

enr*_*cis 5

我的里面有这个.zshrc(感谢Adaephon的提示):

# cd to a parent directory
function pcd { cd ${PWD%/$1/*}/$1; }
Run Code Online (Sandbox Code Playgroud)

使用示例

$ pwd
~
$ mkdir -p a/b/c/d/e/f/g/h/i/j/k
$ cd **/k
$ pwd
~/a/b/c/d/e/f/g/h/i/j/k
$ pcd d
$ pwd
~/a/b/c/d
Run Code Online (Sandbox Code Playgroud)

  • 如果当前路径中有多个与目标目录同名的目录(例如“~/a/b/c/a/b/c”),则始终会转到最上面的目录。如果你想在向上时转到第一个匹配的目录,可以使用 function { cd ${PWD%/$1/*}/$1 }`。 (2认同)