Tuesday, May 29, 2012

Bash Shell: Ignore Aliases / Functions When Running A Command

Q. How do I ignore shell aliases or function when running a command without removing alias / function from memory or current shell session?

A. aliases are mainly used for abbreviating a system command, or for adding default arguments to a regularly used command.

To view defined aliases the following commands can be used:

$ alias
Sample output:
alias cp='cp -i'
alias l='ls $LS_OPTIONS -lA'
alias ll='ls $LS_OPTIONS -l'
alias ls='ls $LS_OPTIONS'
alias mv='mv -i'
alias rm='rm -i'
alias apt-get='apt-get update && apt-get upgrade'

How to ignore aliases or functions when running a command?

Simply use command called command as follows to ignore aliases or functions. For example, on my system I've following alias set:
alias apt-get='apt-get update && apt-get upgrade'
To ignore apt-get alias, enter:
command apt-get -y install
You can also use any one of the following syntax:
\apt-get -y install
"apt-get" -y install

Both \ and " symbols allows you to run real apt-get command and ignore apt-get alias.

More about 'command' command

Runs COMMAND with ARGS ignoring shell functions. If you have a shell function called ls, and you wish to call the command /bin/ls command, you can type:
command ls
If the -p option is given, a default value is used for PATH that is guaranteed to find all of the standard utilities under UNIX / Linux:
command -p ls
The -V or -v option is given, a string is printed describing COMMAND. The -V option produces a more verbose description:
command -v ls
Sample output:
ls is aliased to `ls $LS_OPTIONS'

type command

Type command will print information about alias, function and real command:
type -a apt-get
Sample output:
apt-get is aliased to `apt-get update && apt-get upgrade'
apt-get is /usr/bin/apt-get

No comments:

Post a Comment