type コマンドの結果の "is hashed"

type コマンドで 情報を表示すると たまに "is hashed" と表示されることがあります。

$ type sl
sl is hashed (/usr/games/sl)

なんだろう?と思って調べてみると 下のサイトに「コマンドの場所へ高速にアクセスするために、よく使用するパスをキャッシュにとっていて、ハッシュテーブルがそのキャッシュ」と 書いてありました。

[参考]
typeとwhichの違いって? - OpenGroove

なるほど。

現在ハッシュテーブルにキャッシュされているコマンドは hash コマンドで確認できます。

$ hash
hits    command
   1    /usr/bin/man
   3    /usr/games/sl

hash コマンドは シェルの組み込みコマンドです。

$ type hash
hash is a shell builtin

"-r" オプションで ハッシュテーブルを削除できます。

$ hash -r

削除後に確認してみます。

$ hash
hash: hash table empty

空になっています。

ハッシュテーブルが空になった状態で もう 1 度見てみます。

$ type sl
sl is /usr/games/sl

"is hashed" が表示されなくなりました。

Google サイト内検索

Amazonアソシエイト