मैं खोज के लिए prune के समान निर्देशिका में उतरने से ls कैसे रोक सकता हूं?


12

यदि मैं टाइप करता ls *ro*हूं तो मुझे *ro*पैटर्न से मेल खाने वाली उपनिर्देशिकाओं में फाइलें भी मिलती हैं ।
क्या prun के समान ls का कोई विकल्प है?

आदर्श रूप से एक ध्वज, अन्यथा शायद एक निष्पादन?

जवाबों:


25

-dस्विच का उपयोग करें :

ls -d *ro*

.....


मैंने एक स्क्रिप्ट लिखी है जो फ़ोल्डर एक्सेस बिट्स (755 या 644 संकेतन में परिवर्तित), तिथि और समय संशोधित और फ़ोल्डर नाम प्राप्त करती है, फिर पाठ संदेश के माध्यम से जानकारी भेजती है। मुझे इसकी आवश्यकता थी <140 अक्षर। इससे मदद मिली, धन्यवाद।
user208145

4

आप उपयोग कर सकते हैं:

ls | grep ro

कार्य को पूरा करने के लिए। उस आउटपुट को पाइप करें lsजिसमें केवल वर्तमान निर्देशिका की सामग्री grepऔर रेगेक्स पैटर्न से मेल खाती फ़ाइलों का आउटपुट करने के लिए।


-1 कैसे पता चलेगा कि पैटर्न मैच निर्देशिका या उपनिर्देशिका में था?
माइकल डुरंट

इसके अलावा यह वास्तव में कुछ भी वापस नहीं करता है। कोशिश करो।
माइकल डुरंट

1
डिफ़ॉल्ट रूप से एलएस केवल वर्तमान निर्देशिका की सामग्री को आउटपुट करता है। इसलिए उस आउटपुट को grep में पास करना केवल उस डेटा को लौटाता है जो दिए गए regex से मेल खाता है। मैंने अपने आर्क सिस्टम पर दिए गए कमांड को आज़माया और यह पूरी तरह से काम करता है।
dirir

चूँकि grep एक regex को इनपुट के रूप में लेता है, रो के चारों ओर तारांकन जोड़ नहीं है। जैसा कि मैंने उल्लेख किया है, बस grep ro निष्पादित करें। मैनटवर्क के जवाब की तुलना में यह एक क्रूड हैक है, लेकिन पूरी तरह से ठीक काम करता है।
dirir

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