Bash
刪除特定可執行路徑的 bash 雜湊
我有一個
gmx
在這兩個路徑上呼叫的命令:/usr/local/bin/gmx
和
/Users/alexamil/.nvm/versions/node/v9.2.0/bin/gmx
如何僅刪除其中一個的 bash 雜湊?
如果我執行:
hash -d gmx
它要刪除哪一個?它是刪除兩者,還是僅刪除最近的值?這對刪除特定的有效嗎?
hash -d "/Users/alexamil/.nvm/versions/node/v9.2.0/bin/gmx"
gmx
Bash 只記住每個名稱的一個路徑,因此它(最多)只有一個路徑。您可以通過執行查看哪個是hash -t gmx
跑步
hash -d gmx
將刪除任何條目
gmx
(由 顯示的條目hash -t
)。下次您嘗試執行gmx
時,shell 將在您列出的目錄中查找它PATH
,並將找到的第一個儲存為雜湊。你不能刪除一個特定的值,但你可以強制一個特定的值,包括一個不在你的
PATH
:hash -p /usr/local/bin/gmx gmx
這將導致 shell
/usr/local/bin/gmx
在您鍵入時執行gmx
。有關詳細資訊,請參閱Bash 手冊。