web-dev-qa-db-ja.com

実行可能なシンボリックリンクの結果、「コマンドが見つかりません」

私はこのようなシンボリックリンクを作成しました(昨日):

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

24
xralf

bin/pythonの前の最初のスラッシュを忘れました。これは、/usr/bin/prj-python/usr/bin/bin/pythonを指すようになったことを意味します。正確に何を指摘しますか?

21
janmoesen

確認すること:

  • _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_がシェルスクリプト(別名wrapper-script)の場合は、#!-line(時々Shebang-line)を最初の行に配置します。 _#!/bin/bush_のようなタイプミスがあると、not foundエラーメッセージも表示されます。
25
ktf