Linuxのシェルでaliasではなく元のコマンドを実行する!(alias/unalias/command)

Linuxのシェルでaliasされたコマンドではなく元のコマンドを実行します。

aliasされたコマンドを確認する!

aliasコマンドを引数なしで実行するとaliasされているコマンドを表示することができます。本稿では、「rm」コマンドにに注目します。

$ alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'

aliasされたコマンドを実行する!

aliasされたrmコマンドを実行すると以下のように、削除時にプロンプトが表示されます。

$ mkdir testdir
$ touch testdir/test.log
$ rm -r testdir
rm: descend into directory 'testdir'? y
rm: remove regular empty file 'testdir/test.log'? y
rm: remove directory 'testdir'? y

aliasを無効化する!(unalias)

シェルを実行する場合は、プロンプトが表示されると困るので、unaliasコマンドで無効化します。

$ alias | grep rm
alias rm='rm -i'
$ unalias rm
$ alias | grep rm
$ mkdir testdir
$ touch testdir/test.log
$ rm -r testdir

aliasを無効化する!(command)

commandコマンドを使用すると、unaliasしなくてもaliasされていない元のコマンドを実行できます。

$ alias | grep rm
alias rm='rm -i'
$ mkdir testdir
$ touch testdir/test.log
$ command rm -r testdir

おわりに

コマンドプロンプトでよく使用されるコマンドは、aliasされていることがあります。aliasされているコマンドを使用する場合は、unaliasするかcommandコマンドで元のコマンドを実行します。unaliasは、aliasされていないとコマンドが失敗することに注意しましょう。

関連記事

関連書籍(Amazon)