मैं टैब पूरा होने की संभावनाओं के माध्यम से कैसे प्राप्त कर सकता हूं?


18

जब मैं कंसोल में टैब दबाता हूं तो मुझे यह आउटपुट मिलता है

सभी 2957 संभावनाओं को प्रदर्शित करें? (y या n)

क्या grepइन 2957 संभावनाओं पर उपयोग करने का कोई तरीका है ? मैं उनमें "svn" शब्द के साथ सभी कमांड खोजना चाहूंगा।

जवाबों:


21

इसका समाधान बैश बिलिन है compgen। सभी उपलब्ध कमांडों से 'svn' को grep करने के लिए और $PATHटाइप के माध्यम से ऐक्सेस अलाइज़ को कमांड करें।

compgen -ac | grep svn

एक निश्चित उपसर्ग से खोज करना चाहते हैं (उदाहरण के लिए शुरू होने वाले सभी कमांड ecrypt)? नियमित अभिव्यक्ति का उपयोग करें

compgen -ac | grep "^ecrypt"

उत्कृष्ट जवाब है, लेकिन क्या होगा अगर कोई खुद को पूरा करने की संभावनाएं पूरा करना चाहता है? मेरा मतलब है, यह हमेशा कमांड के नाम से नहीं, बल्कि कमांड मापदंडों द्वारा भी ट्रिगर होता है, आदि
अंकलजीव


1

यह समान होना चाहिए:

for x in `echo $PATH | sed 's/:/ /g'`; do ls $x | grep svn; done

1
for i in $(echo $PATH | tr ":" "\n"); do find $i -type f -perm +111; done | grep svn

टोटम के उत्तर के समान ही इसके अलावा इसका दायरा निष्पादन योग्यताओं तक सीमित है (जैसा कि बैश करता है)। लेकिन जेजेई compgenएक और मील बेहतर है।


1

शायद {,.}*svn*यहाँ मदद करता है, जैसे ls -l /usr/bin/{,.}*svn*<tab>

लेकिन, Zsh पर एक नजर है! यहाँ: http://www.jukie.net/bart/blog/zsh-tab-completion कुछ बेहतरीन उदाहरण हैं कि कैसे यह आपके टैब पूरा करने के परिणामों को कम करने में मदद कर सकता है। इसमें निषेध भी शामिल है, उदाहरण के लिए, यदि आप "फोबार" शब्द के बिना सभी टैब-पूर्ण परिणाम चाहते हैं, या सभी परिणाम पहले स्थान पर भी हैं, तो उपनिर्देशिका टैब-पूर्ण और बहुत अधिक। इस कारण मैं zsh में बदल गया, सभी खुले टर्मिनलों के बीच इतिहास साझाकरण था।


0

मुझे पता नहीं था, और मैंने सुझाव दिया था:

ls -d ${PATH//:/\/*svn* } 2>/dev/null

मार के लिए।

${VAR//pattern/replace} replaces in VAR pattern with replace. // is used to replace every pattern, not just the first, which would be just /.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.