web-dev-qa-db-ja.com

typeコマンドを使用する場合、「ハッシュされている」とはどういう意味ですか?

私は この投稿 を読んでいて、最初の回答ですべてのコマンドを試してみました...私が今すぐにできることは他にありません。

とにかく、私はrmに関してそれらすべてを調べました。私の興味をそそったのはこれです:

root@headdesk:~# type ls
ls is /bin/ls
root@headdesk:~# hash ls
root@headdesk:~# type ls
ls is hashed (/bin/ls)
root@headdesk:~#

ランニング help/man hashはあまり役に立ちませんが、help typeも実際にはそうではありません(hashについてはどこにも触れていません)。 man/info/helpページで関係が見つからないように見えないので、誰かがhashingがtypeコマンドに関して何をしているのか説明してもらえますか?

13
cutrightjm

これは、次回の参照を迅速にするために、ハッシュテーブルに格納されることを意味します。

3
Michael Durrant

Bashの場合:help hashとすると、組み込みコマンドhashに関するヘルプが表示されます。

各コマンドNAMEの絶対パス名を決定して覚えておいてください。

つまり、コマンドの場所を最初に見つけた後(またはハッシュが呼び出されたとき)、その場所が記憶されます(ハッシュされます)。

1
user79743