`Cd` için komut tamamlama yalnızca dizinleri gösterecek ve dosyaları yok sayacak şekilde değiştirilebilir mi?


12

Bash içindeki bir dizindeyken ve tuşuna bastığımda, cd Space Tabdizindeki her şeyi bir olasılık olarak gösterir. ( Show all 1000 possibilities?) Ben çok düzenli dosyaları ve nispeten az dizinleri olan bir dizindeyken bu gerçekten hantal.

Peki, otomatik tamamlama seçimlerini cdyalnızca dizinleri içerecek şekilde yapmak mümkün müdür?

Bunu yaparak bir dizin içinde bir dizin listesi alabileceğimi biliyorum

ls -d */

ama oradan nasıl ilerleyeceğimden emin değilim.

CentOS 6.6 Final kullanıyorum .

Yanıtlar:


25

Sadece ekle

complete -d cd

senin içinde ~/.bashrc(veya başka bash yapılandırma dosyası).


işe yarıyor! Teşekkürler. Yazarken zorunda bashbenim yeniden sonra ~/.bashrcdosyayı
chiliNUT

İlginç. Bu Debian kurulumumdaki varsayılan davranıştır, ancak yazım completegösterilmez -d cdveya buna benzer bir şey olmaz . Görünüşe göre burada başka bir şekilde yapıldı.
Tom Zych

@TomZych Popüler bash tamamlama komut dosyası var, dağıtımınızın varsayılan olarak yüklemesi muhtemeldir.
jimmij

2
~/.bashrcTürü yeniden okumak için . ~/.bashrc. Bu bir alt kabuk başlatmayabilir.
ctrl-alt-delor

1
@richard Bir de bu komutu geçerli etkileşimli kabuğa yeniden yazabilir / yapıştırabilir.
jimmij

2

Bu gerektiğini birçok dağıtımlar yüklemek tipik bir otomatik gerçekleşiyor.
Değilse, muhtemelen bash-completionpaketi kaçırıyorsunuz :

  • Ubuntu: sudo apt-get install bash-completion
  • Arch: sudo pacman -S bash-completion
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.