私の~.profile
PATH="/path/1/":"/path/2/":"$PATH"
/path/1/
そして/path/2/
両方とも同じ名前の実行可能ファイルを持っていますmyexecutable
。
非ログインインタラクティブシェルで一時的に2つのディレクトリ間の検索順序を変更したいと思います。
Bashのマニュアルによるとhash
-pオプションはパス検索を無効にし、ファイル名が名前の場所として使用されます。
私の方法は
$ hash -p /path/2/myexecutable
hits command
3 /usr/bin/which
4 /usr/bin/psql
1 /bin/cat
10 /usr/bin/sudo
1 /bin/mv
1 /usr/bin/whereis
3 /bin/mkdir
19 /bin/ls
出力はと同じで変更されhash
ないようです。myexecutable
/path/2/myexecutable
$ which myexecutable
/path/1/myexecutable
それではhash -p
、実際には何をしますか?
ありがとうございます。
ベストアンサー1
からhelp hash
:
ハッシュ:ハッシュ[-lr] [-pパス名] [-dt] [名前...]
-p pathname は、PATHNAME を NAME の絶対パス名として使用します。
だから:
$ hash -p /path/2/myexecutable myexecutable
やりたいことをします。
もちろん、実行可能ファイル名でいくつかのゲームをプレイできます。
$ hash -p /bin/echo myexecutable
echo
電話したらすぐに実行してくださいmyexecutable
。
$ myexecutable Hello World
Hello World