Можно ли изменить завершение команды для `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 , очень вероятно, что ваш дистрибутив установил его по умолчанию.
Джимми

2
Перечитать ~/.bashrcтип . ~/.bashrc. Это может не запустить суб-оболочку.
Ctrl-Alt-Delor

1
@ Richard Можно также просто набрать / вставить эту команду в текущей интерактивной оболочке.
Джимми

2

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

  • Ubuntu: sudo apt-get install bash-completion
  • Arch: sudo pacman -S bash-completion
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.