हालांकि इसका उत्तर कुछ अन्य लोगों द्वारा दिया गया है, मैं कुछ विचार जोड़ना चाहूंगा:
1) PATH से केवल तभी सलाह ली जाती है जब निष्पादन योग्य आह्वान में कोई पथ तत्व न हो। somecommand $ PATH में देखा जाएगा, ./somecommand
या /usr/bin/somecommand
, ../../bin/somecommand
केवल निर्देशिका नियमों का उपयोग करें, PATH नहीं
यदि PATH में एक ही नाम के साथ कई निष्पादन योग्य फाइलें हैं, जिसे एक पसंद किया जाता है?
यह पहले पायदान पर रुकता है, $ PATH को दाएं से बाएं पढ़ना।
क्या फ़ाइल को निष्पादित करते समय वर्तमान निर्देशिका खोज में शामिल है?
यदि वर्तमान निर्देशिका PATH में है तो इसे खोजा जाता है। याद रखें कि PATH में एक खाली निर्देशिका में वर्तमान निर्देशिका शामिल है। जैसे PATH =: / usr / bin (अग्रणी खाली) PATH = / usr / bin: (अनुगामी खाली) और PATH = / usr / bin :: / bin (मध्य खाली) सभी प्रभावी रूप से वर्तमान कार्य निर्देशिका में शामिल होंगे।
मान लीजिए कि एक फ़ाइल है जिसका नाम निष्पादन योग्य है। वर्तमान निर्देशिका में। क्या यह काम करेगा यदि इसे $ निष्पादित किया जाए और। पथ का हिस्सा नहीं है?
इसे पाथ खोजकर कभी नहीं मिलेगा। यदि वर्तमान dir PATH में नहीं है, तो वह इसे PATH लुकअप द्वारा नहीं ढूंढेगा।
उस ने कहा (और भ्रम को जोड़ने के लिए क्षमा करें) यदि कोई उर्फ या फ़ंक्शन था जो कमांड चलाता था, तो इसे चलाया जाएगा। या यदि आपके शेल में एक स्थान कैश है, और निष्पादन योग्य कैश में था, तो यह मिल सकता है। इसलिए, यह इसे पेट में कभी नहीं मिलेगा, लेकिन इसे अन्य तरीकों से चलाया जा सकता है।
which <executable>
सूत्र इस धागे में उपयोगी होगा।