Чи можна завершити команду `cd ', щоб відображати лише каталоги та ігнорувати файли?


12

Коли я перебуваю в каталозі в bash, і натискаю cd Space Tab, це показує все в каталозі як можливість. ( Show all 1000 possibilities?) Це справді громіздко, коли я перебуваю в каталозі з великою кількістю регулярних файлів і порівняно мало каталогів.

Отже, чи можна зробити вибір для автодоповнення cdлише включати каталоги?

Я знаю, що я можу отримати список каталогу в каталозі, виконуючи ці дії

ls -d */

але я не впевнений, як діяти звідти.

Я використовую CentOS 6.6 Final .

Відповіді:


25

Просто додайте

complete -d cd

у вашому ~/.bashrc(або іншому файлі конфігурації bash).


це працює! Дякую. Мені довелося набрати bashпісля того, щоб перезавантажити свій ~/.bashrcфайл
chiliNUT

Це цікаво. Це поведінка за замовчуванням на моїй установці Debian, але введення тексту completeне відображає -d cdнічого подібного. Мабуть, це було зроблено інакше.
Том Зіч

@TomZych Існує популярний скрипт завершення файлу bash , дуже ймовірно, що ваш дистрибутив встановив його за замовчуванням.
jimmij

2
Щоб перечитати ~/.bashrcтип . ~/.bashrc. Це, можливо, не запускає підзагін.
ctrl-alt-delor

1
@richard Можна також просто ввести / вставити цю команду в поточну інтерактивну оболонку.
jimmij

2

Це має відбуватися автоматично при типовій установці для багатьох дистрибутивів.
Якщо це не так, ви, ймовірно, відсутній bash-completionпакет:

  • Ubuntu: sudo apt-get install bash-completion
  • Арка: sudo pacman -S bash-completion
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.