Коли я це роблю
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?