यह प्रश्न ( मैं एक कुबंटू 12.04 इंस्टॉल से सूक्ति कैसे निकाल सकता हूं? ) में प्रश्न चिह्न के साथ कमांड हैं:
sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?
उनका क्या मतलब है?
यह प्रश्न ( मैं एक कुबंटू 12.04 इंस्टॉल से सूक्ति कैसे निकाल सकता हूं? ) में प्रश्न चिह्न के साथ कमांड हैं:
sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?
उनका क्या मतलब है?
जवाबों:
उन्हें वाइल्डकार्ड (ग्लोबिंग पैटर्न) कहा जाता है
मानक वाइल्डकार्ड (ग्लोबिंग पैटर्न के रूप में भी जाना जाता है) का उपयोग विभिन्न कमांड-लाइन उपयोगिताओं द्वारा कई फाइलों के साथ काम करने के लिए किया जाता है।
मानक वाइल्डकार्ड का उपयोग लगभग किसी भी कमांड (mv, cp, rm और कई अन्य सहित) द्वारा किया जाता है।
(question mark)
यह किसी भी एकल चरित्र का प्रतिनिधित्व कर सकता है। यदि आपने कमांड लाइन में कुछ निर्दिष्ट किया है जैसे "hd?" GNU / Linux hda, hdb, hdc और az, 0-9 के बीच के हर दूसरे अक्षर / संख्या की तलाश करेगा।
*(asterisk)
यह किसी भी वर्ण का प्रतिनिधित्व कर सकता है (शून्य सहित, दूसरे शब्दों में, शून्य या अधिक वर्ण)। यदि आपने "cd *" निर्दिष्ट किया है, तो यह "cda", "cdrom", "cdrecord" और "cd" से शुरू होने वाली किसी भी चीज़ को "cd" सहित उपयोग करेगा। "m * l" मिल, mull, ml, और किसी भी चीज़ से हो सकता है जो m से शुरू होता है और एक l से समाप्त होता है।
[ ] (square brackets)
एक सीमा निर्दिष्ट करता है। अगर आपने m [a, o, u] m किया है तो यह बन सकता है: mam, mum, mom अगर आपने किया: m [ad] m यह कुछ भी बन सकता है जो m से शुरू होता है और समाप्त होता है और किसी भी वर्ण के लिए d inbetween होता है। उदाहरण के लिए, ये काम करेंगे: mam, mbm, mcm, mdm। इस तरह के वाइल्डकार्ड एक "या" रिश्ते को निर्दिष्ट करते हैं (आपको केवल एक से मेल खाना चाहिए)।
{ } (curly brackets)
शब्द कॉमा से अलग हो जाते हैं और प्रत्येक शब्द को किसी चीज़ या वाइल्डकार्ड का नाम होना चाहिए। यह वाइल्डकार्ड कुछ भी कॉपी करेगा जो वाइल्डकार्ड (एस), या सटीक नाम (एस) ("या" संबंध, एक या दूसरे) से मेल खाता है।
उदाहरण के लिए, यह मान्य होगा:
cp { .doc, .pdf} ~
यह उपयोगकर्ता होम निर्देशिका में .doc या .pdf के साथ समाप्त होने वाली किसी भी चीज़ को कॉपी करेगा। ध्यान दें कि अल्पविराम (या कहीं और) के बाद रिक्त स्थान की अनुमति नहीं है।
[!]
यह निर्माण [] निर्माण के समान है, कोष्ठक के अंदर किसी वर्ण के मिलान के अलावा, यह किसी भी वर्ण से मेल खाएगा, जब तक कि यह [और] के बीच सूचीबद्ध नहीं है। यह एक तार्किक नहीं है। उदाहरण के लिए rm myfile [! 9] सभी myfiles * (यानी। Myfiles1, myfiles2 आदि) को हटा देगा, लेकिन यह नाम के भीतर कहीं भी 9 नंबर वाली फाइल को नहीं हटाएगा।
\ (backslash)
एक "बच" चरित्र के रूप में प्रयोग किया जाता है, अर्थात् एक विशेष चरित्र की रक्षा के लिए। इस प्रकार, बैकस्लैश के लिए "\" खोज करता है। ध्यान दें कि आपको उद्धरण चिह्नों और बैकस्लैश (तों) का उपयोग करने की आवश्यकता हो सकती है।
अधिक उदाहरणों के लिए: इस पृष्ठ पर जाएँ
Standard wildcards are used by nearly any command (including mv, cp, rm and many others).
=> FALSE। इन वाइल्डकार्ड का विस्तार शेल द्वारा किया जा रहा है और कमांड को जो प्राप्त होता है वह विस्तार (यानी फाइल जो पैटर्न से मेल खाती है) पैटर्न के बजाय होता है। (यदि कोई ऐसी फाइल नहीं है जो पैटर्न से मेल खाती है, तो उस पैटर्न को सीधे कमांड को पास कर दिया जाएगा, हालांकि)
आम तौर पर, बाश में, ?
एक ग्लोब पैटर्न है जो एक मनमाना चरित्र का विस्तार करता है।
उदाहरण के लिए:
$ echo Hello1 > foo1
$ echo Hello2 > foo2
$ cat foo?
Hello1
Hello2
यह एक के लिए समान है *
, लेकिन एक *
के लिए फैलता है 0 या अधिक अक्षर, जबकि एक ?
के लिए फैलता है ठीक एक (मनमाना) चरित्र।
हालांकि आपके विशेष मामले ?
में, कमांड में जाहिरा तौर पर एक टाइपो था।
apt-get
REs को समझें, लेकिन यदि gnome1
वर्तमान निर्देशिका में मौजूद एक फ़ाइल मौजूद है, तो शेल इसे विस्तारित करेगा, इससे पहले कि इसे देखने का कोई मौका मिले।
apt-get remove
आवश्यकता होती है , न कि फ़ाइल नाम की, जो शेल द्वारा वाइल्डकार्ड विस्तार को काफी हद तक बेकार कर देती है। यदि आप पैकेज की एक श्रृंखला को हटाना चाहते हैं, तो आपको शेल को एक ग्लोब के रूप में व्याख्या करने की कोशिश करने से रोकने के लिए उचित पूर्ण अभिव्यक्ति का उपयोग करने की आवश्यकता हैapt-get remove 'gnome.*'
।