NetworkingFiles
SecurityProNews
ITmanagement




Bash Aliases

By: A.P. Lawrence
Expert Author
2005-09-28

Most shells have some provision for aliases. Aliases can assign default behavior to a command (for example "rm" is often aliased to "rm -i") or can be used to create new commands (a typical example is "ll" aliased to be "ls -l").

Aliases are expanded before looking in $PATH. Depending upon your Bash settings, a "which" for a over-ride alias like "rm" may show you the commands found in $PATH also:

bash-2.01$ which rm
rm: aliased to rm -i

# a different machine
bash-2.05b$ which rm
alias rm='rm -i'
/bin/rm


To get the second behavior, 'which' itself was aliased :

bash-2.05b$ which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
/usr/bin/which


Aliases are NOT normally expanded in non-interactive shells, which means that if you use "rm" in a script, you won't get the alias - unless you want yo, in which case you do "shopt -s expand_aliases" before calling it. If you want to be safe, use /bin/rm instead, which can't ever be confused with an alias.

There are other confusing rules for alias expansion; even the man page admits the potential for gross misunderstanding and follows that confession with this:

For almost every purpose, aliases are superseded by shell functions.

You might construe that as an apology of sorts, but while the maintainers of Bash might fondly hope (and have excellent reasons for hoping) for that to be true, in fact and in common practise, aliases continue to be used regularly and I have little doubt that will remain true for a long, long time.

*Originally published at APLawrence.com


About the Author:
A.P. Lawrence provides SCO Unix and Linux consulting services http://www.pcunix.com
Newsletter Archive | Submit Article | Advertising Information | About Us| Contact

LinuxDeveloperNews is an iEntry, Inc.® publication © 1998-2008 All Rights Reserved Privacy Policy and Legal
iEntry Contact Advertise iEntry Jayde WebProWorld Forums Downloads News Article Archive About iEntry LinuxDeveloperNews Home Page LinuxDeveloperNews News