xylz,imxylz

关注后端架构、中间件、分布式和并发编程

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  111 随笔 :: 10 文章 :: 2680 评论 :: 0 Trackbacks
升级到OS X 10.9后,系统默认的python已经升级到2.7.5了,所以以前通过ports安装的2.7.3版本就没有必要了。
于是就使用port卸载了。

    sudo port uninstall 
--follow-dependents python27


完整的问题描述在这里(stackoverflow)。
最后通过Google找到答案,原来Bash会对命令的路径解析进行缓存。

通过 hash -l 命令可以查看当前所有缓存的命令路径:

    ➜ 
~ $ hash -l
    builtin hash 
-/Users/adyliu/bin/hosts hosts
    builtin hash 
-/usr/bin/which which
    builtin hash 
-/usr/bin/host host
    builtin hash 
-/usr/bin/python2.6 python2.6
    builtin hash 
-/usr/bin/python2.7 python2.7
    builtin hash 
-/usr/bin/locate locate
    builtin hash 
-/usr/bin/python2.5 python2.5
    builtin hash 
-/usr/bin/du du
    builtin hash 
-/bin/cat cat
    builtin hash 
-/usr/bin/vim vim
    builtin hash 
-/usr/bin/sudo sudo
    builtin hash 
-/usr/bin/java java
    builtin hash 
-/usr/bin/uname uname
    builtin hash 
-/opt/local/bin/python2 python2
    builtin hash 
-/usr/local/bin/python3 python3
    builtin hash 
-/usr/bin/man man
    builtin hash 
-/usr/bin/less less
    builtin hash 
-/opt/local/bin/otool otool
    builtin hash 
-/bin/ls ls
    builtin hash 
-/usr/bin/python python

可通过如下命令之一清除缓存:

    hash 
-r
    hash 
-d python2.7

Bash 为了提高命令的解析速度,将解析过的命令的全路径保存在hash表中,因此下次执行的时候就无需进行再次解析。
hash 有如下几个参数:
  • -d [name]... 删除某个命令的路径缓存
  • -r 删除所有命令的路径缓存
  • -t [name] 列出某个命令的缓存路径(如果有的话)
  • -l 列出全部的路径缓存
可使用 help hash 来查看帮助,不过文档没有格式化,比较难看。

[原文地址: Bash命令路径的缓存]

©2009-2014 IMXYLZ |求贤若渴
posted on 2013-10-13 22:16 imxylz 阅读(3147) 评论(0)  编辑  收藏 所属分类: 技术

只有注册用户登录后才能发表评论。


网站导航:
 

©2009-2014 IMXYLZ