A conclusão do comando para `cd` pode ser modificada para mostrar apenas diretórios e ignorar arquivos?

12

Quando estou em um diretório no bash e pressiono cd Space Tab, ele mostra tudo no diretório como uma possibilidade. ( Show all 1000 possibilities?) Isso é realmente complicado quando estou em um diretório com muitos arquivos regulares e relativamente poucos diretórios.

Portanto, é possível fazer escolhas pelo preenchimento automático cdpara incluir apenas diretórios?

Eu sei que posso obter uma listagem de diretório dentro de um diretório fazendo

ls -d */

mas não sei como proceder a partir daí.

Estou usando o CentOS 6.6 Final .

chiliNUT
fonte

Respostas:

25

Basta adicionar

complete -d cd

na tua ~/.bashrc (ou outro arquivo de configuração do bash).

jimmij
fonte
funciona! obrigado. Eu tive que escrever bashdepois de recarregar o meu ~/.bashrcarquivo
chiliNUT
Isso é interessante. Este é o comportamento padrão na minha instalação do Debian, mas a digitação completenão é exibida -d cdou algo parecido. Aparentemente, isso foi feito de alguma outra maneira aqui.
Tom Zych 23/02
@TomZych Existe um script de conclusão do bash popular , é muito provável que sua distribuição o tenha instalado por padrão.
jimmij
2
Para reler o ~/.bashrctipo . ~/.bashrc. Isso pode não iniciar um sub-shell.
Ctrl-alt-delor
1
@richard One também pode apenas redigitar / colar este comando no shell interativo atual.
jimmij
2

Isso deve estar acontecendo automaticamente em uma instalação típica em muitas distros.
Caso contrário, você provavelmente está perdendo o bash-completionpacote:

  • Ubuntu: sudo apt-get install bash-completion
  • Arco: sudo pacman -S bash-completion
user541686
fonte