Коли я це роблю
which pip3
я отримав
/usr/local/bin/pip3
але коли я намагаюся виконати, pip3
я отримую помилку наступним чином:
bash: /usr/bin/pip3: No such file or directory
Це тому, що я нещодавно видалив цей файл. Тепер which
команда вказує на іншу версію, pip3
яка знаходиться в, /usr/local/bin
але оболонка все ще пам’ятає неправильний шлях. Як змусити забути про цей шлях?
which
Керівництво каже ,
which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in
a strictly POSIX-conformant shell. It does this by searching the PATH for executable files matching the names of the arguments. It does not follow
symbolic links.
Обидва /usr/local/bin
і /usr/bin
в моїй PATH
змінній, і /usr/local/bin/pip3
це не символічне посилання, це виконуваний файл. То чому він не виконується?
pip3
в цю оболонку, поки вона була, /usr/bin
а потім переміщували її?
hash -t pip3
?
hash -t pip3
друкує/usr/bin/pip3
type
більше, ніж чим which
. type
вбудована в оболонку posix і повідомляє вам, що буде робити оболонку, а не which
намагається вгадати, що буде робити оболонка.
/usr/local/bin/pip3
?