Antworten:
Die Lösung ist die Bash Builtin compgen
. Geben Sie Folgendes ein, um 'svn' von allen verfügbaren Befehlen und Befehlsaliasnamen zu lesen, auf die über zugegriffen werden $PATH
kann.
compgen -ac | grep svn
Möchten Sie nach einem bestimmten Präfix suchen (z. B. nach allen Befehlen, die mit beginnen ecrypt
)? Verwenden Sie reguläre Ausdrücke. .
compgen -ac | grep "^ecrypt"
Sie können versuchen, mit compgen
.
Beispielsweise:
compgen -ac | grep "svn"
vielleicht {,.}*svn*
hilft hier zb ls -l /usr/bin/{,.}*svn*<tab>
.
Schauen Sie doch mal auf die Zsh! Hier: http://www.jukie.net/bart/blog/zsh-tab-completion sind einige gute Beispiele dafür, wie Sie die Ergebnisse der Tab-Vervollständigung reduzieren können. Dies schließt auch die Negation ein, z. B. wenn Sie alle Ergebnisse der Tabulatorvervollständigung ohne das Wort "foobar" oder alle Ergebnisse mit geraden Ziffern an erster Stelle, die Tabulatorvervollständigung im Unterverzeichnis und vieles mehr wünschen. Der Grund, warum ich zu zsh gewechselt bin, war die gemeinsame Nutzung der Historie zwischen allen offenen Terminals.
Ich kannte compgen nicht und hätte vorgeschlagen:
ls -d ${PATH//:/\/*svn* } 2>/dev/null
für bash.
${VAR//pattern/replace} replaces in VAR pattern with replace. // is used to replace every pattern, not just the first, which would be just /.