use `which` on an aliased command

今天重装 Ubuntu 12.04 后安装 mysql server 5.5 时诡异发现下面的问题:
$ whereis mysql
mysql: /usr/bin/mysql /etc/mysql /usr/lib/mysql /usr/bin/X11/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.g

$ which mysql
mysql: aliased to nocorrect mysql


$ whereis mysql
mysql: /usr/bin/mysql /etc/mysql /usr/lib/mysql /usr/bin/X11/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.g

$ which mysql
/usr/bin/mysql

--------------------
分别使用 zsh 和 bash 运行结果不一样,然后 google 发现原来是因为我使用了 oh-my-zsh,而 oh-my-zhs 中有如下一段 alias
alias mysql='nocorrect mysql'

--------------------
对于 aliased 的 command 可以使用这个命令:
$type -a mysql

--------------------
或许正如别人讨论的,type 才是更加符合 POSIX 的命令

猜你喜欢

转载自hbin.iteye.com/blog/1511403
今日推荐