Apakah perintah penyelesaian untuk `cd` hanya dapat diubah untuk menampilkan direktori dan mengabaikan file?

12

Ketika saya berada di direktori dalam bash, dan saya menekan cd Space Tab, itu menunjukkan segala sesuatu di direktori sebagai kemungkinan. ( Show all 1000 possibilities?) Ini benar-benar rumit ketika saya berada di direktori dengan banyak file biasa dan direktori yang relatif sedikit.

Jadi, mungkinkah membuat pilihan untuk penyelesaian otomatis cddengan hanya memasukkan direktori?

Saya tahu saya bisa mendapatkan daftar direktori di dalam direktori dengan melakukan

ls -d */

tapi saya tidak yakin bagaimana melanjutkan dari sana.

Saya menggunakan CentOS 6.6 Final .

cabeNUT
sumber

Jawaban:

25

Cukup tambahkan

complete -d cd

di ~/.bashrcfile konfigurasi bash Anda (atau file konfigurasi lainnya).

jimmij
sumber
berhasil! Terima kasih. Saya harus mengetik bashsetelah memuat ulang ~/.bashrcfile saya
chiliNUT
Itu menarik. Ini adalah perilaku default pada instalasi Debian saya, tetapi mengetik completetidak muncul -d cdatau semacamnya. Rupanya itu dilakukan dengan cara lain di sini.
Tom Zych
@ TomZych Ada skrip penyelesaian bash yang populer , sangat mungkin distro Anda menginstalnya secara default.
jimmij
2
Untuk membaca ulang ~/.bashrcketik . ~/.bashrc. Ini mungkin tidak memulai sub-shell.
ctrl-alt-delor
1
@richard One juga bisa mengetik ulang / menempelkan perintah ini di shell interaktif saat ini.
jimmij
2

Ini harus terjadi secara otomatis pada instalasi khas pada banyak distro.
Jika tidak, Anda mungkin melewatkan bash-completionpaket:

  • Ubuntu: sudo apt-get install bash-completion
  • Lengkungan: sudo pacman -S bash-completion
pengguna541686
sumber