Symlink
可執行符號連結導致“找不到命令”
我創建了一個符號連結(昨天),如下所示:
sudo ln -s bin/python /usr/bin/prj-python
當我執行時:
prj-python file.py
我得到:
prj-python: command not found
當我再次嘗試創建連結時,我得到:
ln: 創建符號連結 `/usr/bin/prj-python’: 文件存在
為什麼會這樣?我
$PATH
的是:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer
您之前忘記了最初的斜線
bin/python
。這意味著/usr/bin/prj-python
現在指向/usr/bin/bin/python
。您希望它準確地指向什麼?
檢查事項:
- 執行一個
ls -l /usr/bin/prj-python
如果是這樣:
lrwxrwxrwx (...) /usr/bin/prj-python -> bin/python
該文件實際上將在**/usr/bin/bin/python**中搜尋(這就是 xralf 試圖說的)。使固定:
rm /usr/bin/prj-python
ln -s /full/path/to/your/python /usr/bin/python-prj
- 如果您
bin/python
是 shell 腳本(又名包裝腳本),請檢查第一行的*#!-line*(有時稱為shebang -line)。如果有這樣的錯字#!/bin/bush
也會導致未找到的錯誤消息。