2012-07-20 71 views
3

我已經有一段時間了這個問題。在/ home/me /中說我有一個「cat3」作爲目錄。現在,在我的Bash shell中,我做了「$ cat [tab]」。我的標籤循環顯示:cat,catchsegv,catman。但沒有「貓3」。如果我做「cd cat [tab]」,那麼它立即給cat3。這非常煩人,因爲有時候我有一個帶有555權限的腳本「cat3/test.py」。bash自動完成沒有目錄

理想情況下,我想輸入「c [tab] t [tab] [enter]」來運行腳本。但我必須鍵入「cat3/t [tab] [enter]」...

如何在標籤中查看目錄& CWD內的可執行文件,然後查看/ usr/bin或其他內容?

謝謝你的幫助!

+0

有y你考慮輸入'./c [tab]'而不是? – blahdiblah 2012-07-21 01:16:15

回答

2

如果cat3是一個目錄,當您開始時,shell將不會自動完成它,就像您要在您的路徑中執行命令一樣。一個簡單的解決方案是先從當前目錄下符號,即,「」:

$ ./c[tab] 

,或者你可以在CAT3創建〜/ bin中的符號鏈接腳本,並添加〜/ bin添加到您的路徑:

export PATH=~/bin:$PATH 

,如果你真的想當前目錄添加到您的路徑,你仍然可以做到這一點(但是,這是一個非常糟糕的主意,因爲至少,當你想自動完成頻繁使用它會令你感到驚訝命令):

export PATH=.:$PATH 
+0

謝謝。 「./」比鍵入整個事物更容易。我很驚訝沒有這個「修復」... 這實際上是我不想將PATH添加到目錄的情況。 – 2012-07-20 05:34:54

+0

@AA:輸入'cat3'不會做任何事情,那麼爲什麼要完成它?如果你輸入'ls cat ',那麼它應該完成你的目錄名稱。你可以修改bash的完成來查找本地目錄中的文件,並用'。/'作爲前綴,但這很複雜,並且與通過PATH(變量)或路徑(絕對/相對)執行的常見unix模型混淆。 – idbrii 2012-07-28 19:23:05