The subject says it all, how to rehash the available executables available within one of the $PATHs after having changed things: e.g. removed a binary from one $PATH which is available in another $PATH, changed the $PATH-variable.
Asked
Active
Viewed 5.6k times
2 Answers
151
hash -r is what needs to be done. In zsh it is rehash and rehash doesn't exist (by default) in bash.
Patrick B.
- 2,978
- 3
- 18
- 18
-
rehash is also a cshell command. – macetw Jun 19 '19 at 18:22
13
I use both shells and rehash has been reinforced in my hind-brain for decades, it comes out of my fingers without asking. To accommodate those reflexes I have added alias rehash='hash -r' to my .aliases_bash file, which I test for and source from .bashrc.
To summarize, in .bashrc I use the line:
[[ -f ~/.aliases_bash ]] && . ~/.aliases_bash
and in /.aliases_bash I use the line
alias rehash='hash -r'
Patrick B.
- 2,978
- 3
- 18
- 18
ElderDelp
- 245