linux: फाइल्स की अनुमति कैसे दिखायें (जैसे ls -l) फाइंड कमांड द्वारा लौटी फाइलों पर


1

मैं एक विशिष्ट एक्सटेंशन की फाइलें मुझे दिखाने के लिए एक खोज कमांड कर रहा हूं, जैसे:

find $directory -type f -name "*.vm"

हालाँकि मैं फ़ाइल अनुमतियाँ (जैसे ls -l शोज़) भी देख पाऊँगा।

यह कैसे किया जा सकता है?

जवाबों:


2

जीएनयू 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


1

आप निर्दिष्ट कर सकते हैं -ls के लिए विकल्प find। या, यदि आपको एक विशिष्ट प्रारूप की आवश्यकता है, तो उपयोग करें -exec:

find "$directory" -type f -name '*.vm'  -exec ls -l {} \;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.