To improve on the steps I have to take to complete some actions on my Mac, I have created many aliases. Example:
-
To open System Preferences, which I have to do often to manage multiple monitors, I have created the following alias in
~/.bash_profile
:alias pref='open -a System\ Preferences'
-
To put my setup in "Work From Home" mode, I have:
alias wfh='code&rdc&smc&'
which opens Visual Studio Code, the Remote Desktop and the Cisco Mobility Client.
-
To work with aliases themselves I have:
alias editbash='nano ~/.bash_profile;source ~/.bash_profile'
which opens the
~/.bash_profile
in nano editor and then when I'm done, it automatically sources the updated contents of the file for me.
Question:
I have numerous aliases that are all related to git. I often forget the alias for some actions. However, the good news is that all of my git aliases start with gt
.
How can I list only the aliases that start with a particular string?
Best Answer
grep for them
Far better suggestion from the comments - grep on alias.
You can list all your aliases, even the ones not written in
~/.bash_profile
, by callingalias
.grep the result to find the aliases starting from
gt
as:Since the aliases are created by writing
alias <alias_name>=...
, to list the aliases starting with, for example,gt
, you can do:The
^
in the grep argument is an anchor. The caret^
and the dollar sign$
are meta-characters that respectively match the empty string at the beginning and end of a line.In
^alias gt
, it implies that you want only those lines that start with "alias gt". On my machine, I get the following result:Alternatively, you could grep without the anchor as:
Here, you are simply looking for any line that contains the substring "gt", anywhere. As a result, you may get some unnecessary lines, but you will get all aliases that use any of your git aliases.
On my machine, I get the following output using this search. Notice the extra line at the top, which was not present in the previous output:
Finally, depending upon which command you find more useful (or even go for both if they both are useful), you can create a new alias to list all git related aliases: