तारांकन, बैकलैश, कोलन और टू (* \: 2) का क्या अर्थ है?


14

निम्नलिखित lsआदेश का क्या अर्थ है ?

ls -l *\:2,*T
  • ls = सूची
  • -l = लंबी (सूची)
  • *Tशायद Tअंत में मतलब है

लेकिन उस *\:2और अल्पविराम के बारे में क्या ?

जवाबों:


25

*\:2,*Tसूची के लिए फ़ाइलों का ग्लोब पैटर्न है। इसे समझने के लिए, हमें कुछ बातें याद रखने की जरूरत है:

  • : बनने से बचना होगा \:
  • फ़ाइल नाम में आसानी से अल्पविराम हो सकते हैं

इसलिए *\:2,*Tउदा नामक एक फ़ाइल से मेल खाता हैTranscationNumber:2,EventType:XYT

संपादित करें

टिप्पणियों से, :कुछ शब्दों को छोड़कर भागने की आवश्यकता (या नहीं) : यह संकेत से बचने के लिए कड़ाई से आवश्यक नहीं है: , लेकिन ऑटोकेम्पलिंग के दौरान यह स्वयं को हरा देता है।


3
शुक्रिया, यूजेन और HBruijn दोनों। मुझे कुछ जटिल ग्लोबिंग पैटर्न पर संदेह था, लेकिन वास्तव में यह सिर्फ बृहदान्त्र और अल्पविराम से मेल खाना चाहिए, जिसे मैंने फाइलों के साथ काम करते समय नहीं सोचा था। अब, कमांड पूरी तरह से समझ में आता है: Maildir निर्देशिका में सभी ईमेल फ़ाइलों को सूचीबद्ध करें, जिन्हें "हटाए गए" (टी) के रूप में चिह्नित किया गया है। Btw। नंबर 2 का अर्थ है संस्करण 2 में Maildir (cf wiki2.dovecot.org/MailboxFormat/Maildir )।
jugmac00

11
कब :से बचना है?
बमर

7
:भागने की जरूरत नहीं है। यह केवल विशिष्ट परिस्थितियों में विशेष है (जब एक कमांड के रूप में उपयोग किया जाता है), ग्लोब पैटर्न में नहीं। \:के बराबर है :, भागने कोई फर्क नहीं पड़ता।
टेराडॉन

1
@ एरोन, यह बिल्कुल नहीं है: शेल अभी भी चर प्रतिस्थापन की प्रक्रिया करेगा, विशेष रूप से असाइनमेंट विविधता (यानी डिफ़ॉल्ट मान सेट करने के लिए):unset var; : ${var:=x}; echo $var
ग्लेन जैकमैन

3
@terdon & @Aaron बृहदान्त्र पर्यावरण चर के :लिए डिफ़ॉल्ट मानों का हिस्सा है COMP_WORDBREAKS। बैश ऑटोकंप्लीमेंट में उन वर्णों को शब्द विभाजक के रूप में रीड लाइन लाइब्रेरी द्वारा उपयोग किया जाता है और एक फाइल-नाम जिसमें एक कोलोन होता है, निश्चित रूप से एक शब्द होना चाहिए। इसलिए यह कारण है कि स्वतः
संलयन को रोकने के

14

वाइल्डकार्ड पैटर्न से मेल खाने वाली सभी फ़ाइलों की सूची बनाएं *:2,*T

वाइल्डकार्ड *कुछ भी मेल खाता है (सभी संभावित वर्णों की संख्या)
:2,ऐसे अक्षर हैं जो फ़ाइल / निर्देशिका नामों में मौजूद होने की आवश्यकता है।
बृहदान्त्र :एक विशेष चरित्र है जिससे बचने की आवश्यकता है, इसलिए इसका रूप है \:2,
फ़ाइल / निर्देशिका नामों को एक के साथ समाप्त करने की आवश्यकता है T

फ़ाइल नाम जो मेल खाते होंगे

:2,T
a:2,T
a:2,bT
abbY-$fafaf:2,<hskjhsgdfhjk>T

1
इसके बारे में कुछ खास नहीं है: इसे भागने की जरूरत नहीं है।
केविन

@ केविन बाश ऑटो-पूर्ण स्वचालित रूप से फ़ाइल / निर्देशिका नाम पैटर्न में कोलन से बच जाता है, क्योंकि COMP_WORDBREAKपर्यावरण मूल्यों की सूची में शामिल है जो डिफ़ॉल्ट रूप से सेट हो जाते हैं। - तो यह वास्तव में एक वास्तविक विशेष चरित्र नहीं है, लेकिन जब आप कमांडलाइन पर स्वत: पूर्णता का उपयोग करते हैं और किसी कोलोन के साथ फ़ाइलनाम का मिलान करना चाहते हैं / चाहते हैं, तो यह बच निकलने की आवश्यकता है।
HBruijn

9

जैसा कि अन्य ने उल्लेख किया है, यह लंबे प्रारूप में, फाइलों से युक्त :2और अंत में सूचीबद्ध होगाT

यह उन फ़ाइलों के लिए एक Maildir फ़ोल्डर में एक खोज जैसा दिखता है जिन्हें हटा दिया गया था (ट्रैश किए गए)। हालांकि, मजबूती के लिए इसे *अंत में एक और होना चाहिए था , हालांकि। बाद के वर्णमाला की स्थिति के साथ नए झंडे जोड़े जा सकते हैं, और उदाहरण के लिए डवकोट अंत में फ़ाइल आकार के साथ एक और फ़ील्ड जोड़ता है।

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