निर्देशिका में फ़ाइलों की संख्या की गणना कैसे करें लेकिन पुनरावर्ती रूप से नहीं


30

सरल प्रश्न मैं निश्चित हूं। मैंने एक उत्तर देखा है जो दिखाता है कि इसे उपनिर्देशिका सहित कैसे करना है, लेकिन मैं जानना चाहता हूं कि वर्तमान निर्देशिका में कितनी फाइलें (फ़ोल्डर नहीं) हैं। धन्यवाद।

जवाबों:


60
ls -F |grep -v / | wc -l
  1. ls -F प्रविष्टियों के लिए सभी फाइलों और अपेंड इंडिकेटर (* / => @ |) की सूची बनाएं
  2. grep -v /सभी डी स्ट्रिंग्स रखें जिसमें स्लैश हो
  3. wc -l लाइनों की गिनती

निर्देशिका को छोड़कर सभी चीजों की सूची।
23

मैं वास्तव में आपको इसे तोड़ने और अनुभागों की व्याख्या करने के लिए सराहना करता हूं, एक कामकाजी और अच्छी तरह से समझाया गया उत्तर के लिए धन्यवाद!
bcsteeve

1
जबकि सभी उत्तर मेरी समस्या को हल करते हैं, मैं इसे अपने दस्तावेज के रूप में चुन रहा हूं और मुझे समझना आसान है। लेकिन सभी को धन्यवाद!
bcsteeve

15

इस oneliner का प्रयास करें:

find -maxdepth 1 -type f | wc -l

यह अच्छा है, केवल फाइलें और कुछ नहीं है :-)
थॉमस

यह लिंक और विशेष चरित्र उपकरणों को छोड़ देता है।
ojblass

यहाँ सभी उत्तर महान काम करते हैं! तो पहले, धन्यवाद। दूसरा ... मैं कैसे चुनूं?
bcsteeve

6

इसे इस्तेमाल करे

ls -al | grep ^[-] | wc -l
  1. ls -al - लंबी सूची प्रारूप के साथ सभी फ़ाइल को सूचीबद्ध करें
  2. grep ^[-] - स्ट्रिंग के लिए खोज जो "-" के साथ शुरू होती है, जो कि एलएस -al के साथ सूची फ़ाइल के लिए नियमित फ़ाइल को सूचित करने के लिए प्रतीक है
  3. wc -l - लाइनों की गिनती

सॉफ्ट लिंक्स के बारे में क्या? हार्ड लिंक्ड फाइल्स के बारे में क्या?

एक अच्छी, केवल फाइलें और लिंक, और कुछ नहीं।
23

नरम / हार्ड लिंक के लिए बदलने के बहर -द्वाराl
andr3w

मैं वास्तव में आपको इसे तोड़ने और अनुभागों की व्याख्या करने के लिए सराहना करता हूं, एक कामकाजी और अच्छी तरह से समझाया गया उत्तर के लिए धन्यवाद!
bcsteeve

2

मैं सिर्फ थोम का जवाब जोड़ना चाहता हूं क्योंकि मुझे बैश के साथ खेलना पसंद है । ये रहा:

echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"

Bellow मेरी /dataनिर्देशिका का एक परिणाम है :

Directory /data has 580569 file(s).

और बलो मेरे स्पष्टीकरण हैं:

  1. echo double-quoted-message एक वांछनीय संदेश प्रिंट करेगा।
  2. $(any-desirable-valid-command)echoवसीयत के दोहरे उद्धृत संदेश के अंदर संबंधित कमांड निष्पादन का परिणाम प्रिंट करेगा।
  3. pwd वर्तमान निर्देशिका प्रिंट करेगा।
  4. ls -Fप्रविष्टियों के लिए सभी फाइलों और अपेंड इंडिकेटर (* / => @ |) में से एक को सूचीबद्ध करने के लिए है। मैंने इसे थॉम के जवाब से कॉपी किया ।
  5. grep -v /सादे-पाठ को खोजने के लिए एक कमांड है, -v /पैरामीटर उन सभी तारों को रखेगा जिसमें स्लैश (एस) नहीं है।
  6. wc -l लाइन की गिनती प्रिंट करेंगे।

मुझे पता है कि यह प्रश्न 3 साल पुराना है, मैं सिर्फ एक और उत्तर जोड़ने के लिए अपने आग्रह को पकड़ नहीं सकता।


2

यदि आपने treeअपने सिस्टम पर स्थापित किया है तो आप इस कमांड का उपयोग कर सकते हैं:

tree -L 1 /path/to/your/directory | tail -n 1

यह आपको उस निर्देशिका में फ़ाइलों और निर्देशिकाओं की संख्या दिखाता है।

-L n खोज की गहराई को दर्शाता है।

आप के treeसाथ स्थापित कर सकते हैं sudo apt-get install tree


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