bash命令路径的缓存 -凯发k8网页登录

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

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

    sudo port uninstall 
--follow-dependents python27


完整的问题描述在这里()。
最后通过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 来查看帮助,不过文档没有格式化,比较难看。

[原文地址: ]

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

©2009-2014
网站地图