ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
बैश पर काम करता है। समस्या क्या है ? :-D
ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
बैश पर काम करता है। समस्या क्या है ? :-D
जवाबों:
हां, zsh
और bash
इस संबंध में अलग तरह से व्यवहार करें।
में zsh
, जब आप कहते हैं कि " ubuntuone-*
" यह फ़ाइलों को साथ शुरू करने के लिए अपने वर्तमान कार्यशील निर्देशिका में लग रहा है ubuntuone-
- के बाद से यह किसी भी नहीं मिल रहा है, यह कहते हैं, " no matches
" और आदेश नहीं चलता है।
bash
एक अलग कील लेता है - यह उन फ़ाइलों की भी तलाश करता है ubuntuone-
जो वर्तमान कार्यशील निर्देशिका में शुरू होती हैं , लेकिन अगर यह नहीं मिलता है तो यह खुद से कहती है, "शायद मैं जिस कार्यक्रम को आमंत्रित कर रहा हूं वह जानता है कि वाइल्डकार्ड को कैसे संभालना है," और इसलिए गुजरता है " ubuntuone-*
" sudo apt-get
एक शाब्दिक तर्क के रूप में।
यदि आपके पास अपनी वर्तमान कार्यशील निर्देशिका में एक फ़ाइल है ubuntuone-ffdjhjer
, तो बैश निष्पादित करने का प्रयास करेगा sudo apt-get remove --purge ubuntuone-ffdjhjer
, जो संभवतः विफल हो जाएगा।
में zsh
(और में bash
) आप इसे वाइल्डकार्ड विस्तार करने के लिए नहीं है, लेकिन के रूप में, उस पर पारित करने के लिए बताने के लिए एकल उद्धरण का उपयोग कर सकते हैं:
sudo apt-get remove --purge 'ubuntuone-*'
dpkg -l 'linux*'
सभी स्थापित गुठली देखने के लिए बैश में टाइप करता हूं ।
इस उत्तर में थोड़ी देर हो सकती है, लेकिन इसे ठीक करने का एक तरीका है। कमांड लाइन निष्पादित से:
unsetopt no_match
shopt -s failglob
में bash
करने के लिए ठीक bash
है, तो यह की तरह बर्ताव zsh
और अन्य आधुनिक गोले की तरह fish
या tcsh
कि तय कर दी है कि बॉर्न शैल जिससे एक आदेश अभी भी भले ही globs से मेल नहीं खाती चलाया जा सकता है की misfeature।