Odpowiedzi:
Rozwiązaniem jest wbudowane bash compgen
. Aby grep 'svn' ze wszystkich dostępnych poleceń i aliasów poleceń dostępnych przez $PATH
, wpisz.
compgen -ac | grep svn
Chcesz wyszukiwać według określonego prefiksu (np. Wszystkich poleceń zaczynających się od ecrypt
)? Używaj wyrażeń regularnych. .
compgen -ac | grep "^ecrypt"
Możesz spróbować użyć compgen
.
Na przykład:
compgen -ac | grep "svn"
może {,.}*svn*
pomaga tutaj np ls -l /usr/bin/{,.}*svn*<tab>
.
Ale spójrz na Zsh! Tutaj: http://www.jukie.net/bart/blog/zsh-tab-completion to kilka świetnych przykładów, w jaki sposób może pomóc zmniejszyć wyniki uzupełniania kart. Obejmuje to również negację, np. Jeśli chcesz uzyskać wszystkie wyniki uzupełniania tabulatorów bez słowa „foobar” lub wszystkie wyniki z parzystymi cyframi na pierwszym miejscu, uzupełnianie tabulatorów w podkatalogu i wiele więcej. Powodem, dla którego przeszedłem na zsh, było dzielenie się historią między wszystkimi otwartymi terminalami.
Nie znałem compgen i zasugerowałbym:
ls -d ${PATH//:/\/*svn* } 2>/dev/null
za bash.
${VAR//pattern/replace} replaces in VAR pattern with replace. // is used to replace every pattern, not just the first, which would be just /.