Можно ли изменить завершение команды для `cd`, чтобы показывать только каталоги и игнорировать файлы?

12

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

Итак, возможно ли сделать выбор для автозаполнения, cdчтобы включить только каталоги?

Я знаю, что могу получить список каталогов внутри каталога, выполнив

ls -d */

но я не уверен, что делать дальше.

Я использую CentOS 6.6 Final .

chiliNUT
источник

Ответы:

25

Просто добавь

complete -d cd

в вашем ~/.bashrc(или другом файле конфигурации bash).

jimmij
источник
оно работает! Благодарю. Я должен был напечатать bashпосле, чтобы перезагрузить мой ~/.bashrcфайл
chiliNUT
Это интересно. Это поведение по умолчанию при моей установке Debian, но при наборе текста completeничего не отображается -d cd. Видимо, это было сделано другим способом здесь.
Том Зыч
@TomZych Существует популярный скрипт завершения bash , очень вероятно, что ваш дистрибутив установил его по умолчанию.
Джимми
2
Перечитать ~/.bashrcтип . ~/.bashrc. Это может не запустить суб-оболочку.
Ctrl-Alt-Delor
1
@ Richard Можно также просто набрать / вставить эту команду в текущей интерактивной оболочке.
Джимми
2

Это должно происходить автоматически при обычной установке во многих дистрибутивах.
Если это не так, вы, вероятно, пропустите bash-completionпакет:

  • Ubuntu: sudo apt-get install bash-completion
  • Arch: sudo pacman -S bash-completion
user541686
источник