उदाहरण के लिए, मैंने gitअपने सिस्टम पर स्थापित किया है। लेकिन मुझे यह याद नहीं है कि मैंने इसे कहाँ स्थापित किया है, इसलिए यह पता लगाने के लिए कौन सी कमांड फिट है?
उदाहरण के लिए, मैंने gitअपने सिस्टम पर स्थापित किया है। लेकिन मुझे यह याद नहीं है कि मैंने इसे कहाँ स्थापित किया है, इसलिए यह पता लगाने के लिए कौन सी कमांड फिट है?
जवाबों:
यदि यह आपके रास्ते में है, तो आप type gitया तो चला सकते हैं which git। whichआदेश समस्याओं उचित पथ (पर्यावरण और डॉट फ़ाइलों के बीच भ्रम की स्थिति) हो रही पड़ा है। के लिए type, आप सिर्फ -pतर्क के साथ रास्ता पा सकते हैं ।
यदि यह आपके रास्ते में नहीं है, तो इसके लिए इसे देखना सबसे अच्छा है क्योंकि इसमें locate -b git 'git' नाम की कोई भी चीज़ मिलेगी। यह एक लंबी सूची होगी, इसलिए इसके साथ अर्हता प्राप्त करना अच्छा हो सकता है locate -b git | fgrep -w bin।
locateअंतहीन रूप से उपयोग करता हूं (यह बहुत तेज है), लेकिन इसके बारे में अनजान लोगों के लिए, locateयह केवल अपने सबसे हालिया डेटाबेस अपडेट के रूप में अद्यतित है, जो मेरे उबंटू पर दैनिक रूप से चलाया जाता है। ताज़ा आदेश है sudo updatedb... इसके अलावा locate: निर्मित regex क्षमता है, इसलिए इस तरह आदेशों काम करता है locate -br "^git$"-b` साधन करने के लिए बस खोज को सीमित ... basename ... या बिना -b, यह पूर्ण पथ नाम खोज .. इसके अलावा , यह केवल उन रास्तों को खोजता है जिन्हें आपने इसे खोजने के लिए कॉन्फ़िगर किया है .. आपके रेगेक्स फिल्टर के अलावा इस का कोई कमांड-लाइन नियंत्रण नहीं है।
typeएक शेल बिलिन है जो मुझे उपनाम और ऐसे बताता है, और whichएक बाहरी कार्यक्रम है जो मुझे एक निष्पादन योग्य का रास्ता दिखाता है ... हालांकि अगर कोई ऐसा बेसिन है जो अंदर मिलता है जिस तरह से निष्पादन योग्य नहीं कहा जाएगा।
whichयह हैं कि यह शेल बिल्ट-इन और फ़ंक्शंस के बारे में नहीं जानता है (जो प्रासंगिक है जब आप सोच रहे हैं कि कमांड टाइपिंग क्या करेगा), और यह $PATHकुछ सिस्टम पर एक अलग का उपयोग करता है ।
ऐसा करने का POSIX मानक तरीका है command -v git। सभी UNIX- जैसी प्रणालियों को इसका समर्थन करना चाहिए।
whereis git और आपको आज्ञा का मार्ग मिलता है।
अगर आपके पास git PATH वैरिएबल में है, तो यदि आपने इसे पैकेज मैनेजर के माध्यम से स्थापित नहीं किया है, तो यह अधिक जटिल है और आपको findया locateकमांड्स का उपयोग करना चाहिए ।
whichको भी प्रोत्साहित किया जाता है।
यहाँ अन्य उत्तर मोटे तौर पर लिनक्स का आधुनिक संस्करण की दिशा में सक्षम हो रहे हैं, इसलिए यदि आप उपयोग करने के लिए हो gitएक OS नहीं है पर locate, whereis, which, या apropos(सोलारिस, HPUX, आदि जैसे), तो वहाँ हमेशा वर्ष अतिरिक्त है find।
find / -name git
ऊपर सूचीबद्ध प्रणालियों के कुछ पुराने संस्करण, आपको -printआपूर्ति किए गए विकल्प की आवश्यकता हो सकती है find।
find / -name git -print
और यदि आप उपयोग करते हैं locate, तो सुनिश्चित करें कि आप समय updatedb-समय पर चलाते हैं । ( locate.updatedbकुछ BSD डेरिवेटिव्स पर)
type ; यह विश्वसनीय और पोर्टेबल है (30-वर्षीय प्रणालियों को छोड़कर)।
type। :) यह निश्चित रूप से प्रदर्शनों की सूची में जा रहा है!
findफ़ाइल सिस्टम की पूरी गहराई-पहली खोज जहां भी आप इसे शुरू करते हैं, वहां से रूट करते हैं। तो find / -name gitआपके पूरे सिस्टम को पीछे छोड़ देगा। यदि आप जानते हैं कि कार्यक्रम आपके रास्ते पर है IFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done, तो आप आमतौर पर कर सकते हैं , हालांकि यूनिक्स फाइलसिस्टम पर्याप्त रूप से अनुमति देते हैं कि अगर आपके पास अजीब अक्षर हैं तो यह कई तरह से टूट सकता है PATH।
PATH, सही चीज (पहले की तरह ही कैविट्स के साथ) टूट जाएगी IFS=":"; for dir in $PATH; do find "$dir" -name git; done। इसके अलावा, दोहराते हैं, इस सवाल का जवाब केवल लोग हैं, जो करने के लिए पहुँच नहीं है द्वारा इस्तेमाल किया जाना चाहिए typeया which या locate , यानी, लगभग कोई भी नहीं। @ आर्सगे का उत्तर सही है।
स्थापित प्रोग्राम के लिए पथ प्राप्त करने के लिए जिसका आप या तो उपयोग करते हैं whereisया which। यदि आप यह नाम भूल जाते हैं, तो आप aproposअपनी उपयोगिता के एक पर्याय या विवरण के साथ उपयोग कर सकते हैं , जैसे apropos "version control"पाएंगे git। इसके बाद निश्चित whatisरूप से एक कार्यक्रम के कार्य को संक्षेप में प्रस्तुत करने की आज्ञा है। हालाँकि यह आपके सिस्टम पर सभी कार्यक्रमों और कार्यों पर लागू नहीं होता है। उदाहरण के लिए प्रयास करें whatis "the meaning of life, universe and everything"।
whichकमांड" वास्तव में :)