जवाबों:
जीएनयू find
एक -ls
निर्देश आप उपयोग कर सकते हैं। इसका आउटपुट फॉर्मेट काफी करीब है, लेकिन इसके बिल्कुल मेल नहीं खा रहा है ls -l
।
खोजने की डिफ़ॉल्ट क्रिया, यदि कोई नहीं दी गई है, है -print
जो बस फ़ाइल नाम और पथ प्रिंट के रूप में पाया। यदि आप जोड़ते हैं (या प्रतिस्थापित करते हैं -print
साथ में) -ls
तब आपको एक और क्रिया सूची मिलती है।
यदि आप किसी भी कारण से कुछ विशेष प्रारूप चाहते हैं, -printf
तुम क्या चाहते हो उदाहरण के लिए, इसे आज़माएँ:
find . -printf "%M %n %8.8u %8.8g %8.8s %Ax %AX %p\n"
लगभग दोहराने के लिए ls -l
आउटपुट स्वरूप। (यह एक अलग दिनांक स्वरूपण का उपयोग करता है; यह हो सकता है कि वहाँ भी ls के व्यवहार को दोहराने के लिए संभव हो; देखें; find
उपलब्ध विवरण निर्दिष्ट प्रारूप पर विवरण के लिए मैन पेज, और printf(3)
संख्या क्या है, इस पर विवरण के लिए।
आम तौर पर, आप करना चाहते हैं से बचने का उपयोग करते हुए -exec
यदि आप कर सकते हैं, और यदि आपको -exec का उपयोग करना है, तो आप चाहते हैं उपयोग करने के लिए प्रयास करें +
बजाय {}
एक आह्वान में कई फ़ाइल नाम देने के लिए। अन्यथा मानदंड का मिलान करते हुए प्रति फ़ाइल एक बार कमांड निष्पादित की जाएगी, जो बड़ी संख्या में फ़ाइलों के साथ पर्याप्त प्रदर्शन जुर्माना पर आ सकती है।
यह भी ध्यान दें कि यदि आपको पुनरावृत्ति व्यवहार की आवश्यकता नहीं है, तो सबसे आसान समाधान केवल पहली जगह में ls का उपयोग करना हो सकता है: ls -ld $directory/*.vm