Czy zakończenie komendy dla `cd` może być zmodyfikowane tak, aby wyświetlało tylko katalogi i ignorowało pliki?


12

Kiedy jestem w katalogu bash i nacisnę cd Space Tab, pokazuje wszystko w katalogu jako możliwe. ( Show all 1000 possibilities?) Jest to naprawdę kłopotliwe, gdy jestem w katalogu z dużą ilością zwykłych plików i stosunkowo niewielką liczbą katalogów.

Czy zatem możliwe jest wybranie opcji autouzupełniania cdobejmującej tylko katalogi?

Wiem, że mogę uzyskać listę katalogów w katalogu, robiąc to

ls -d */

ale nie jestem pewien, jak się stąd zabrać.

Korzystam z CentOS 6.6 Final .

Odpowiedzi:


25

Poprostu dodaj

complete -d cd

w twoim ~/.bashrc(lub innym pliku konfiguracyjnym bash).


to działa! dzięki. Musiałem wpisać bashpo, aby ponownie załadować ~/.bashrcplik
chiliNUT,

To interesujące. Jest to domyślne zachowanie w mojej instalacji Debiana, ale pisanie completenie pokazuje się -d cdani nic podobnego. Najwyraźniej zrobiono to tutaj w inny sposób.
Tom Zych

@TomZych Istnieje popularny skrypt kończący bash , jest bardzo prawdopodobne, że twoja dystrybucja domyślnie go zainstalowała.
jimmij

2
Aby ponownie przeczytać, ~/.bashrcwpisz . ~/.bashrc. Może to nie uruchamia podpowłoki.
ctrl-alt-delor

1
@richard Można również ponownie wpisać / wkleić to polecenie w bieżącej powłoce interaktywnej.
jimmij

2

To powinno być automatycznie dzieje się na typowym zainstalować na wielu dystrybucjach.
Jeśli tak nie jest, prawdopodobnie brakuje Ci bash-completionpakietu:

  • Ubuntu: sudo apt-get install bash-completion
  • Łuk: sudo pacman -S bash-completion
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.