उसी प्रोग्राम के इंस्टॉल किए गए संस्करणों को कैसे सूचीबद्ध करें


7

मेरे पास एक प्रोग्राम है जिसे PyMOL कहा जाता है जो मेरी मशीन पर कई बार स्थापित होता है। एक MacPorts द्वारा स्थापित किया गया था, एक डेवलपर्स वितरण चैनल और इतने पर के माध्यम से स्थापित किया गया था। एक / ऑप्ट / स्थानीय / बिन में है, दूसरा / i / have / no / सुराग में है।

मुझे पता है कि मैं "कौन सा pymol" उपयोग कर सकता हूं, यह देखने के लिए कि जिस पर अमल किया जाता है वह स्थित है, लेकिन मैं उसी नाम के साथ अन्य लोगों का स्थान कैसे प्राप्त कर सकता हूं?

जवाबों:


3

आपके पास सही कमांड है और बस उचित विकल्प सेट करने की आवश्यकता है:

which -a pymolpymolआपके भीतर स्थित निष्पादन योग्य के सभी उदाहरण दिखाएगा PATH

उदाहरण के लिए, अपने लैपटॉप पर मैंने gitदो स्थानों पर स्थापित किया है:

$ which git
/usr/local/bin/git

जब मैं कमांड का उपयोग करूंगा तो क्या होगा git

$ which -a git
/usr/local/bin/git
/usr/bin/git

मेरे में निष्पादन योग्य के हर उदाहरण प्रदान करता है PATH


यह वास्तव में सबसे अच्छा जवाब है। शीर्ष परिणाम which -a fooआपको डिफ़ॉल्ट बताएगा।
टीजे लुओमा

ठीक है, लेकिन $ PATH में नहीं उदाहरणों के बारे में कैसे? मैं वास्तव में उन उदाहरणों के बाद हूं जिनके बारे में मुझे नहीं पता है, और इसलिए मैंने $ PATH में नहीं जोड़ा है।
TMOTTM

2

whereis pymol आपको उन सभी मैचों को दिखाना चाहिए जो आपके निष्पादन योग्य मार्ग में हैं।


Btw यह अन्य यूनिक्स सिस्टम पर भी काम करता है।
मैथ्यू रीगलर

1

आप "खोज" या "खोज" का उपयोग कर सकते हैं और फिर "grep" के माध्यम से परिणाम चला सकते हैं।

यह आपको "जो" या "जहां" के परिणामों से अधिक देगा जो केवल $ PATH पर चीजें दिखाएंगे।

"पता लगाना" तेज है, लेकिन एक इंडेक्स का उपयोग करता है जो हमेशा अप-टू-डेट नहीं होता है।

"खोज" धीमी है, हर चीज की पुनरावर्ती खोज कर रही है, लेकिन यह सभी परिणाम पैदा करती है - न कि केवल "परिणाम" जैसे अनुक्रमित किए गए परिणाम।


मुझे हमेशा "खोज" का उपयोग करने में परेशानी होती है। क्या आप एक उदाहरण प्रदान कर सकते हैं कि आप यहां "खोज" का उपयोग कैसे करेंगे?
TMOTTM

मुझे "खोज" कमांड का उपयोग करने में भी परेशानी होती है। इसलिए मुझे एक GUI इंटरफ़ेस पसंद है जैसे कि "ईज़ी फाइंड" ऐप में क्या है: devontechnologies.com/download/products.html
Kaydell

मैंने "खोज" कमांड की सिफारिश की थी, इसलिए मैं कुछ उदाहरण पोस्ट करूंगा।
कायडेल

0

अपने मैन पेज के अनुसार कम से कम, लेकिन उस परिणाम में whereisखोज नहीं करता $PATHहै sysctl user.cs_path(जिसमें उपयोगकर्ता की प्रोफ़ाइल द्वारा जोड़ा गया कोई अतिरिक्त निर्देशिका शामिल नहीं है)। वास्तविक पर आधारित कमांड की खोज करने के लिए $PATHआप शेल फ़ंक्शन का उपयोग कर सकते हैं

function whereis() {
    for p in ${PATH//:/ }; do
        [[ -x "$p/$1" ]] && echo "$p"
    done
}

या (आपके विशिष्ट मामले के लिए) चलाते हैं

for p in ${PATH//:/ }; do [[ -x "$p"/pymol ]] && echo "$p" ; done

पुनश्च: ${PATH...}इस के लिए काम करने के लिए अंत के पास अंतरिक्ष चरित्र आवश्यक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.