Сделать надоедливый исполняемый файл невидимым для завершения bash с помощью табуляции (cd-it8 и т. Д.)

При использовании командной строки cd является одной из наиболее часто используемых команд оболочки. Я привык к возможности набирать cd , нажимая tab , а затем снова нажимая tab , чтобы увидеть, какие каталоги есть для cd в. Ubuntu недавно начал включать пакет colord , а его инструменты начинаются с cd . Теперь, если я нажму cd и вкладку , я получу следующее:

$ cd
cd                 cd-fix-profile     cd-it8             
cd-create-profile  cd-iccdump         

Как я могу убедиться, что все эти cd - * исполняемые файлы не отображаются, когда Я использую командную строку? Я предполагаю, что они необходимы ОС, поэтому я не могу просто переместить их или переименовать; однако я не хочу, чтобы они были завершены или даже видны, когда я m в bash.

Обратите внимание, что это находится под bash 4.4.20 (1), которая поставляется с Ubuntu 18.04.

В стороне: включены ли эти исполняемые файлы в Ubuntu 20.04?

0
задан 3 August 2020 в 16:39

1 ответ

Из Переменные Bash ,

EXECIGNORE
Список шаблонов оболочки, разделенных двоеточиями (см. Сопоставление с образцом ), определяющий список имена файлов, которые следует игнорировать при поиске команд с использованием PATH. Файлы, полные имена которых соответствуют одному из этих шаблонов, не считаются исполняемыми файлами для целей завершения и выполнения команд через поиск PATH.

Так что добавьте это в ~ / .bashrc :

EXECIGNORE="*/cd-*:"

Я не есть эти команды cd - * , но вот другой пример:

$ EXECIGNORE=
$ ex<TAB>
ex                          exit                        exo-open                    expiry
exec                        exo-csource                 exo-preferred-applications  export
exifautotran                exo-desktop-item-edit       expand                      expr
$ xfc<TAB>
xfce4-terminal          xfce4-terminal.wrapper  xfconf-query
$ EXECIGNORE="*/ex?*:*/xfconf-query:"
$ ex<TAB>
ex      exec    exit    export
$ xfc<TAB>
$ xfce4-terminal

Это иллюстрирует важный момент: встроенные команды оболочки не исключаются ( exec , exit и экспорт по-прежнему предлагается в завершении), так как они не ищутся с использованием PATH.

1
ответ дан 11 August 2020 в 20:13

Другие вопросы по тегам:

Похожие вопросы: