"आदेश नहीं मिला" में निष्पादन योग्य प्रतीकात्मक लिंक परिणाम


24

मैंने इस तरह एक प्रतीकात्मक लिंक (कल) बनाया:

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 / स्थानीय / sbin: / usr / स्थानीय / बिन: / usr / sbin: / usr / bin: / sbin: / बिन: / usr / खेल: / opt / वास्तविक / वी.ओ.

जवाबों:


21

आप शुरुआती स्लैश को भूल गए bin/python। इसका मतलब है कि /usr/bin/prj-pythonअब यह इंगित करता है /usr/bin/bin/python। क्या आप इसे वास्तव में इंगित करना चाहेंगे?


प्रारंभिक स्लैश नहीं है। pwdहै /home/xralf/my_virtual_envऔर यह उप-निर्देशिका है binसाथ pythonआदेश
xralf

8
की तुलना में, आप भूल गए गए हैं $PWD/पहले bin
आरवीएस

धन्यवाद, इससे मदद मिली। मैंने इस कमांड का उपयोग किया क्योंकि यह पुस्तक में था।
xralf

25

जाँच करने के लिए चीजें:

  • प्रदर्शन करें 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एक शेल स्क्रिप्ट (उर्फ। रैपर-स्क्रिप्ट) है तो पहली पंक्ति में #! - लाइन (जिसे कभी-कभी शेबांग -लाइन कहा जाता है ) की जाँच करें । अगर वहाँ एक टाइपो है #!/bin/bushकि एक त्रुटि संदेश भी नहीं मिलेगा कारण है ।

धन्यवाद, आपका जवाब और भी अधिक सावधान और शैक्षिक है। क्षमा करें, मैंने पहले ही स्वीकार कर लिया है।
xralf

इससे बहुत मदद मिली ... ज्यादातर जवाब अगर $ PATH के बारे में मिले
Ja8zyjits

मैं एक पैरामीटर के बिना एक ln का उपयोग करता हूं। लोगों को वास्तव में ln -s का उपयोग करना चाहिए, इस प्रकार एक प्रतीकात्मक लिंक बनाना चाहिए।
सेड्रिक

मदद की, और मैंने इस्तेमाल किया ln -s $PWD/python /usr/bin/python-prj$PWDपूर्ण पथ प्राप्त करने के लिए उपयोग किया जाता है।
मानवल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.