2011-08-27 58 views
0

我的开发机器是一个Linux主机。壳工具移动到一个复杂的目录结构

我有一个复杂的目录结构(就像我们大多数人一样,我假设),并且我想从shell中的一个目录轻松移动到另一个目录。具体来说,欢迎特点是:

  • 自动完成(像在Emacs IDO模式)
  • 正则表达式目录/文件匹配近日走访目录(栈)的
  • 建议。
  • Possibilty推/弹出堆栈,获得最近访问过的目录列表,...
  • 整合好这些功能
  • 基于

你知道任何工具的控制台,可满足那些要求?

+0

应该是unix或超级用户,而不是编程问题。 –

+0

@Tom Zync:你知道如何将问题转移到另一个论坛吗? – dangonfast

+0

我为那些可以做到这一点的人举报了它。 –

回答

0

嗯,任何交互的shell(比如bash)的已经拥有几乎所有这些功能:

  • 按下Tab键一次为自动完成,并两次以显示可能的完整列表。
  • find | grep reg.exp可用于文件匹配,或find -exec grep reg.exp -H '{}' ';'匹配内容
  • 您可以切换到上一目录中cd -
  • pushdpopd可以用来push和pop目录
+0

当然,所有这些工具工作正常,我经常使用它们。但我经常使用它们以至于我需要更少的“键盘密集型”。这就是为什么我强调“良好融合”的原因。在理想的情况下,几个按键会为我提供一个最符合我所需要的选项列表 - 类似于emacs中的ido模式。 – dangonfast

1

在bash您可以将CDPATH设置为一个冒号分隔的目录,当cd的参数不存在时bash将搜索该目录。

$ man bash|grep -A3 '^\s\+CDPATH ' 
CDPATH The search path for the cd command. This is a colon- 
     separated list of directories in which the shell looks 
     for destination directories specified by the cd com‐ 
     mand. A sample value is ".:~:/usr". 

设置后,将自动完成工作,只是你期望的方式:

$ export CDPATH=dir1:dir2 
$ cd somedir<tab> 

除了当前目录,bash将考虑在$ CDPATH目录的可能值。