Symlink

可執行符號連結導致“找不到命令”

  • November 14, 2018

我創建了一個符號連結(昨天),如下所示:

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也會導致未找到的錯誤消息。

引用自:https://unix.stackexchange.com/questions/22713