Hash 組込みコマンドは外部コマンドのパスを検索・表示します。
hash コマンド…
hash -r [コマンド…]
hash [-a]
hash -d ユーザ名…
hash -dr [ユーザ名…]
hash -d
オプションを指定しない場合、hash コマンドはオペランドで指定した外部コマンドのパスを検索し、結果を記憶します (既に記憶している場合は再度検索・記憶します)。
-r
(--remove
) オプションを指定している場合、hash コマンドはオペランドで指定した外部コマンドのパスに関する記憶を消去します。-r
(--remove
) オプションを指定しかつコマンドを指定しない場合、全ての記憶を消去します。
-r
(--remove
) オプションを指定せずコマンドも指定しない場合、記憶しているパスの一覧を標準出力に出力します。
-d
(--directory
) オプションを指定した場合、hash コマンドは外部コマンドのパスの代わりにユーザのホームディレクトリのパスを検索・記憶または表示します。記憶したパスはチルダ展開で使用します。
-a
, --all
-d
, --directory
-r
, --remove
エラーがない限り hash コマンドの終了ステータスは 0 です。
シェルは、外部コマンド (またはチルダ展開) を実行する際に自動的にコマンド (またはホームディレクトリ) のパスを記憶するので、通常はわざわざ hash コマンドを使ってパスを記憶させる必要はありません。
PATH
変数の値が変わった時は、記憶した外部コマンドのパスは自動的にすべて消去されます。
POSIX が規定しているオプションは -r
だけです。よって他のオプションは POSIX 準拠モードでは使えません。