Jay Taylor's notesback to listing index
bash - What does hash -r command do? - Ask Ubuntu[web search]
I recently switched to linux full time from windows and while I was trying to update my
npm package using
n, I got the new binaries in
/usr/local/bin and previous version was in
/usr/bin. So, it was always picking the previous version.
As per recommendation by a fellow user, I used
hash-r command and it worked. But, I don't know what it did.
It would be very helpful if someone could explain its internals to me.
The shell tracks where executables such as npm reside to avoid having to search the PATH environment variable every time you want to run something.
The -r (reset) argument to hash clears the cache.
If you want to see what commands hash has remembered, simply type hash on its own without any arguments.
You can disable the cache altogether by typing set +h and re-renable it via set -h
hash is a built-in command of the
bash shell. For a summary of what it does you can type
help hash at the shell prompt:
$ help hash hash: hash [-lr] [-p pathname] [-dt] [name ...] Remember or display program locations. Determine and remember the full pathname of each command NAME. If no arguments are given, information about remembered commands is displayed. Options: -d forget the remembered location of each NAME -l display in a format that may be reused as input -p pathname use PATHNAME as the full pathname of NAME -r forget all remembered locations -t print the remembered location of each NAME, preceding each location with the corresponding NAME if multiple NAMEs are given Arguments: NAME Each NAME is searched for in $PATH and added to the list of remembered commands. Exit Status: Returns success unless NAME is not found or an invalid option is given.
hash remembers program locations, and
hash -r forgets them.
Not the answer you're looking for? Browse other questions tagged bash or ask your own question.
site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2020.3.2.36167