When I press tab in a console I get this output
Display all 2957 possibilities? (y or n)
Is there any way to use grep
on these 2957 possibilities? I would like to search for all commands with the word "svn" in them.
When I press tab in a console I get this output
Display all 2957 possibilities? (y or n)
Is there any way to use grep
on these 2957 possibilities? I would like to search for all commands with the word "svn" in them.
The solution is the bash builtin
compgen
. To grep 'svn' from all available commands and command aliases accessible through$PATH
, type.Want to search from a certain prefix (eg all commands that start with
ecrypt
)? Use regular expressions..You can try using
compgen
.For example:
This should be equivallent:
Very similar to totaam's answer apart from this limits its scope to executables (as Bash does). But JJE's
compgen
is another mile better.maybe
{,.}*svn*
helps here, e.g.ls -l /usr/bin/{,.}*svn*<tab>
.But, have a look on the Zsh! Here: http://www.jukie.net/bart/blog/zsh-tab-completion are some great examples how it can help to reduce your tab completion results. This includes also negation, e.g. if you want all tab-completion results without the word "foobar", or all results with even digits in the first place, subdirectory tab-completion and much more. The reason why I changed to zsh was history sharing between all open terminals.
I didn't knew compgen, and would have suggested:
for bash.