उदाहरण के लिए, मैंने 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
कमांड" वास्तव में :)