Bash
我可以按住鍵以僅選項卡完成文件夾
假設我有一個這樣的目錄:
foo/ bar.js bar/
如果我
cd
進入 foo 然後輸入“ba”然後點擊 tab,我將無法完成,因為文件名與文件夾重疊。有沒有我可以用選項卡持有的鍵,它只會給我文件夾(或文件?)
TL,DR:添加
. /etc/bash_completion
到您的.bashrc
.要回答您提出的確切問題,沒有這樣的內置命令。Bash 具有完成各種對象(文件名、使用者名、變數名等)的命令,但不限於目錄。
但是,除非您執行的是舊版本的 bash,否則您可以使用context-sensitive completion,這是 2000 年發布的 2.04 版中添加的一項功能。某些發行版預設啟用它;對於其他人,您需要安裝
bash-completion
軟體包並在~/.bashrc
. 大多數發行版提供了一個名為bash-completion
並將啟動腳本放入的包/etc/bash_completion
,即您.bashrc
應該包含該行. /etc/bash_completion
在此之後,如果您輸入
cd
並按Tab
,則只會完成目錄名稱。如果你有一個非古代版本的 bash(≥4.0),你可以把
shopt -s autocd
你的.bashrc
, 之後你可以省略cd
命令,所以你可以只寫bar
而不是cd bar
. 製表符補全將在行的第一個單詞上完成$PATH
目前目錄(和)中的命令名稱和目錄名稱。$CDPATH
Bash 4.0 還允許您編寫自己的命令行版本功能(早期版本有點,但您必須跳過箍)。所以如果你真的想要,你可以這樣做。如何自定義 Bash 命令完成?有一個相對複雜的例子;搜尋
READLINE_LINE
並complete
找到其他範例。