快速回到父目录

"-b" 选项可以快速回到某一级父目录,避免重复的输入 “cd ../../..”。

  • (没有参数)cd 到项目根目录,即跳转到最近的包含 (.git/.svn/.hg) 的父目录。
  • (单个参数)cd 到离当前目录最近的以关键字开头的父目录,如果找不到就尝试跳到包含关键字的父目录。
  • (两个参数):将当前路径中的第一个关键词替换为第二个关键词。

先将 z -b 别名成 zb

  1. # 一直向上退到项目根目录(就是里面有一个 .git 目录的地方)
  2. ~/github/lorem/src/public$ zb
  3. => cd ~/github/lorem
  4. # cd 到第一个以 g 开头的父目录
  5. ~/github/vimium/src/public$ zb g
  6. => cd ~/github
  7. # 快速回到 site 目录
  8. ~/github/demo/src/org/main/site/utils/file/reader/whatever$ zb si
  9. => cd ~/github/demo/src/org/main/site
  10. # 将 jekyll 替换为 ghost
  11. ~/github/jekyll/test$ zb jekyll ghost
  12. => cd ~/github/ghost/test

向后跳转同样也支持环境变量 $_ZL_ECHO(用来显示跳转结果),这样可以搭配其他工具,在目标目录内执行命令,而并不需要改变当前工作目录(比如:ls `zb git` )。

环境变量 $_ZL_ROOT_MARKERS 是一个逗号分隔的列表,用来识别项目根目录,可以重定义成:

  1. export _ZL_ROOT_MARKERS=".git,.svn,.hg,.root,package.json"

这样在用 zb 时,可以回到包含 .root文件,或者 package.json 文件的父目录。

Bonuszb .. 相当于 cd ..zb ... 相当于 cd ../..,而 zb .... 相当于 cd ../../.. 等等。 最后 zb ..20 等同于调用 cd .. 二十次。