Bashのキャッシュを消すのは?

先日、homebrewでpythonをインストールしました。で、

$ which python

とすると、ちゃんと「/usr/local/bin/python」と表示されますが、実行すると

$ python --version
2.7.5

と表示されます。でもインストールしたのは2.7.8で、2.7.5はMacにもともと入っていたもの。

どこかにキャッシュされているんだろうと思ったら、Bashが独自にキャッシュしているんだそうです(わたしはBashを使っているので)。

こんなときはhashコマンドを使ってみると

$ hash
hits   command
   1   /usr/bin/python

のように表示されます(思い出して再現してます)。

だから、このハッシュをクリアしてやればいいわけです。キャッシュ全部をクリアするのは

$ hash -r

でした。その後もう一度実行すると

$ hash
hash: hash table empty

となったので、

$ python

で無事/usr/local/bin/pythonが呼び出されることになりました。

でも、このターミナルを閉じて、別なターミナルを開けば、こんなことは必要ないんですよね。

コメント