सबसे आसान तरीका लगता है find /path/to/search -ls | wc -l
खोजने के लिए सभी फ़ाइलों और फ़ोल्डरों को चलने के लिए उपयोग किया जाता है।
-ls
सभी नामों को सूचीबद्ध करना (प्रिंट करना)। यह एक डिफ़ॉल्ट है और यदि आप इसे छोड़ देते हैं तो यह अभी भी लगभग सभी प्रणालियों के समान ही काम करेगा। (लगभग, क्योंकि कुछ अलग चूक हो सकती है)। हालांकि यह स्पष्ट रूप से इसका उपयोग करना एक अच्छी आदत है।
यदि आप केवल find /path/to/search -ls
भाग का उपयोग करते हैं तो यह आपकी स्क्रीन पर सभी फाइलों और निर्देशिकाओं को प्रिंट करेगा।
wc
शब्द गणना है। -l
विकल्प यह बताता है लाइनों की संख्या की गणना करने के लिए।
आप इसे कई तरीकों से उपयोग कर सकते हैं, जैसे
- wc टेस्टफाइल
- कैट टेस्टफाइल | स्वागत
पहला विकल्प wc को एक फाइल खोलने देता है और उस फाइल में लाइनों, शब्दों और वर्णों की संख्या की गणना करता है। दूसरा विकल्प वही करता है लेकिन फ़ाइल नाम के बिना यह स्टड से पढ़ता है।
आप एक पाइप के साथ कमांड जोड़ सकते हैं |
। पहली कमांड से आउटपुट दूसरी कमांड के इनपुट पर पाइप किया जाएगा। इस प्रकार find /path/to/search -ls | wc -l
सभी फाइलों और निर्देशिका को सूचीबद्ध करने के लिए खोज का उपयोग करता है और आउटपुट को wc में फीड करता है। Wc तब लाइनों की संख्या गिनता है।
(एक अन्य विकल्प `ls | wc 'रहा होगा, लेकिन यह बहुत अधिक लचीला और सीखने का एक अच्छा साधन है)।
[टिप्पणी के बाद संपादित करें]
यह खोज और निष्पादन को संयोजित करने के लिए उपयोगी हो सकता है।
ईजी find / -type d ! \( -path proc -o -path dev -o -path .snap \) -maxdepth 1 -exec echo starting a find to count to files in in {} \;
सभी निर्देशिकाओं को /, बार में सूचीबद्ध करेगा, जिन्हें आप खोजना नहीं चाहते हैं। हम उनमें से प्रत्येक में प्रति फ़ोल्डर में फ़ाइलों की राशि उपज, पिछले कमांड को ट्रिगर कर सकते हैं।
तथापि:
- यह GNU विशिष्ट एक्सटेंशन -maxdepth का उपयोग करता है।
यह लिनक्स पर काम करेगा, लेकिन किसी भी यूनिक्स-एक जैसे पर नहीं।
- मुझे संदेह है कि आप वास्तव में प्रत्येक और हर उपखंड के लिए एक संख्या के लिए फाइल चाहते हैं।