मुझे लगता है कि आप शेल की एक विशेषता का उपयोग करना चाहते हैं, नहीं ls
। मैं बैश का उपयोग करता हूं, इसलिए मैंने आपको क्या चाहिए, इसकी जांच की man bash
। "^ विस्तार" के लिए खोजें, (पहले दबाकर '/')। अंश:
विस्तार
विस्तार को कमांड लाइन पर शब्दों में विभाजित करने के बाद किया जाता है। सात प्रकार के विस्तार प्रदर्शन किए गए हैं: ब्रेस विस्तार , टिल्ड विस्तार , पैरामीटर और चर विस्तार , कमांड प्रतिस्थापन , अंकगणितीय विस्तार , शब्द विभाजन , और पथनाम विस्तार ।
Ip
... <स्निप> ...
ip
पथनाम विस्तार
शब्द बंटवारे के बाद, जब तक -f विकल्प सेट किया गया है, बैश पात्रों के लिए प्रत्येक शब्द को स्कैन करता है *
, ?
और [
। यदि इन वर्णों में से एक दिखाई देता है, तो शब्द को एक पैटर्न के रूप में माना जाता है , और पैटर्न से मेल खाने वाले फ़ाइल नामों की वर्णानुक्रम में क्रमबद्ध सूची के साथ प्रतिस्थापित किया जाता है। ...
मैंने हाल ही में अपने पहले अक्षर के आधार पर फाइलों को बाहर करना शुरू कर दिया है, जैसे कि एक कमांड:
$ ls ./[^t]*
यह ऐसी किसी भी चीज से मेल खाता होगा जो अक्षर से शुरू नहीं होती है t
। यदि आप कोष्ठक के बीच अधिक वर्ण जोड़ते हैं, तो आप उन अक्षरों से शुरू होने वाली फ़ाइलों को भी बाहर कर देते हैं।
एक लिंक की तलाश है, और मैं एक अच्छा हूँ! पैटर्न मिलान देखें । वहां से, यह आपके मामले के लिए काम करेगा:
$ ls -lrt ./!(temp_log.*)
इसके लिए आवश्यक है कि extglob
शेल विकल्प shopt
बिलिन ( shopt -s extglob
) का उपयोग करके सक्षम किया जाए , जैसा कि गिल्स द्वारा कहा गया है ।
ls --hide='temp_log.$$'
काम करना चाहिए। आप वाइल्डकार्ड के साथ इसे बढ़ा भी सकते हैं, यह निर्भर करता है कि पूरे कार्यकालtemp_log.$$
का कौन सा हिस्सा है।