2016-11-04 18 views
1

В оболочке unix bash, когда я печатаю cd, а затем нажмите вкладку, в ней перечислены как каталоги, так и файлы в качестве доступных опций. Отображение каталогов и, возможно, ссылок на каталоги должны быть интуитивно понятными. Не указали ли счетчик файлов интуитивно понятным?Команда unix-bash cd, а затем вкладка показывает как каталоги, так и файлы

Например, ./, а затем вкладка содержит только те элементы, у которых есть разрешения на выполнение, которые являются умными.

Почему у bash нет одинаковых умений с командой cd? Это ошибка?

+0

Я просто попробовал и не заметил поведения, которое вы описываете; вы уверены в этом? –

+0

Видимо, да. Я использую Linux 2.6.32-431.el6.x86_64. Это было то же самое и в Linux 5.9. Версия Bash: GNU bash, версия 4.1.2 (1) -release (x86_64-redhat-linux-gnu) Copyright (C) 2009 Free Software Foundation, Inc. – syam

+0

Thomas, вы имеете в виду, что только cd + tab каталоги для вас? Какой Linux вы используете? – syam

ответ

2

Добавьте следующую команду в bashrc:

complete -d cd # or ``complete -A directory cd'' 

, то это будет только автозаполнения каталогов (в том числе симлинок к) для директорий команды cd.

См. Programmable Completion Builtins в руководстве пользователя bash для более подробной информации.

1

В обоих случаях вы получаете заполнение имени файла. bash имеет достаточно встроенных умений, чтобы распознать, что имя команды должно иметь исполняемое разрешение, поэтому оно ограничивает ./ + вкладку исполняемым файлам. Завершение аргументовcd подпадает под домен программируется завершение (потому что возможно, хотя и недоброжелательно, затенять встроенную команду с совершенно другой командой, которая не обязательно принимает каталоги в качестве аргументов).

bash Программируемые объекты заканчивания очень хороши, но по какой-либо причине на самом деле он не включает такие доработки в базовой установке. Существует large set of completions available, хотя, в том числе один для cd.