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 .

Respostas:


25

Basta adicionar

complete -d cd

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.