2011-08-27 56 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目錄的可能值。