Il completamento del comando per `cd` può essere modificato per mostrare solo le directory e ignorare i file?


12

Quando mi trovo in una directory in bash e premo cd Space Tab, mostra tutto nella directory come una possibilità. ( Show all 1000 possibilities?) Questo è davvero ingombrante quando mi trovo in una directory con molti file regolari e relativamente poche directory.

Quindi, è possibile fare la scelta per il completamento automatico di cdincludere solo le directory?

So di poter ottenere un elenco di directory all'interno di una directory facendo

ls -d */

ma non sono sicuro di come procedere da lì.

Sto usando CentOS 6.6 Final .

Risposte:


25

Basta aggiungere

complete -d cd

nel tuo ~/.bashrc(o altro file di configurazione di bash).


Funziona! Grazie. Ho dovuto digitare bashdopo per ricaricare il mio ~/.bashrcfile
chiliNUT

Interessante. Questo è il comportamento predefinito sulla mia installazione di Debian, ma la digitazione completenon mostra -d cdo qualcosa del genere. Apparentemente è stato fatto in qualche altro modo qui.
Tom Zych,

@TomZych Esiste un popolare script di completamento bash , è molto probabile che la tua distribuzione lo abbia installato di default.
Jimmij,

2
Per rileggere il ~/.bashrctipo . ~/.bashrc. Questo potrebbe non avviare una sotto-shell.
ctrl-alt-delor,

1
@richard One può anche semplicemente digitare nuovamente / incollare questo comando nella shell interattiva corrente.
Jimmij,

2

Ciò dovrebbe avvenire automaticamente su un'installazione tipica su molte distro.
In caso contrario, probabilmente ti manca il bash-completionpacchetto:

  • Ubuntu: sudo apt-get install bash-completion
  • Arco: sudo pacman -S bash-completion
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.