升级到OS X 10.9后,系统默认的python已经升级到2.7.5了,所以以前通过ports安装的2.7.3版本就没有必要了。于是就使用port卸载了。
sudo port uninstall --follow-dependents python27
完整的问题描述在这。
最后通过Google找到答案,原来Bash会对命令的路径解析进行缓存。
通过hash -l命令可以查看当前所有缓存的命令路径:
? ~ $ hash -lbuiltin hash -p /Users/adyliu/bin/hosts hostsbuiltin hash -p /usr/bin/which whichbuiltin hash -p /usr/bin/host hostbuiltin hash -p /usr/bin/python2.6 python2.6builtin hash -p /usr/bin/python2.7 python2.7builtin hash -p /usr/bin/locate locatebuiltin hash -p /usr/bin/python2.5 python2.5builtin hash -p /usr/bin/du dubuiltin hash -p /bin/cat catbuiltin hash -p /usr/bin/vim vimbuiltin hash -p /usr/bin/sudo sudobuiltin hash -p /usr/bin/java javabuiltin hash -p /usr/bin/uname unamebuiltin hash -p /opt/local/bin/python2 python2builtin hash -p /usr/local/bin/python3 python3builtin hash -p /usr/bin/man manbuiltin hash -p /usr/bin/less lessbuiltin hash -p /opt/local/bin/otool otoolbuiltin hash -p /bin/ls lsbuiltin hash -p /usr/bin/python python
可通过如下命令之一清除缓存:
hash -rhash -d python2.7
Bash 为了提高命令的解析速度,将解析过的命令的全路径保存在hash表中,因此下次执行的时候就无需进行再次解析。
hash 有如下几个参数:
-d [name]… 删除某个命令的路径缓存-r 删除所有命令的路径缓存-t [name] 列出某个命令的缓存路径(如果有的话)-l 列出全部的路径缓存
可使用 help hash 来查看帮助,不过文档没有格式化,比较难看。
原文地址:Bash命令路径的缓存, 感谢原作者分享。 年岁有加,并非垂老,理想丢弃,方堕暮年。