Как я могу просмотреть возможности завершения вкладки?

Когда я нажимаю tab в консоли, я получаю этот вывод

Показать все 2957 возможностей? (y или n)

Есть ли способ использовать grep для этих 2957 возможностей? Я хотел бы найти все команды со словом «svn» в них.

18
задан 3 January 2012 в 15:42

6 ответов

for i in $(echo $PATH | tr ":" "\n"); do find $i -type f -perm +111; done | grep svn

Очень похоже на ответ totaam, за исключением того, что он ограничивает область применения исполняемыми файлами (как это делает Bash). Но JJE compgen еще на милю лучше.

0
ответ дан 3 January 2012 в 15:42

Решением является встроенный bash compgen. Для извлечения 'svn' из всех доступных команд и псевдонимов команд, доступных через $PATH, введите.

compgen -ac | grep svn

Хотите выполнить поиск по определенному префиксу (например, по всем командам, начинающимся с ecrypt)? Используйте регулярные выражения. .

compgen -ac | grep "^ecrypt"
0
ответ дан 3 January 2012 в 15:42

Это должно быть равнозначно:

for x in `echo $PATH | sed 's/:/ /g'`; do ls $x | grep svn; done
0
ответ дан 3 January 2012 в 15:42

Вы можете попробовать использовать compgen.

Например:

compgen -ac | grep "svn"
0
ответ дан 3 January 2012 в 15:42

Я не знал compgen, и предложил бы:

ls -d ${PATH//:/\/*svn* } 2>/dev/null

для bash.

${VAR//pattern/replace} replaces in VAR pattern with replace. // is used to replace every pattern, not just the first, which would be just /.
0
ответ дан 3 January 2012 в 15:42

Может быть, {,.}*svn* здесь помогает, например, ls -l /usr/bin/{,.}*svn*<tab>.

Но посмотрите на Zsh! Здесь: http://www.jukie.net/bart/blog/zsh-tab-completion - несколько замечательных примеров того, как это может помочь уменьшить ваши результаты завершения вкладки. Это включает в себя также отрицание, например, если вам нужны все результаты завершения табуляции без слова "foobar" или все результаты с четными цифрами, в первую очередь вкладка подкаталога и многое другое. Причиной, по которой я перешел на zsh, был обмен историей между всеми открытыми терминалами.

0
ответ дан 3 January 2012 в 15:42

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

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