मैं किसी फ़ाइल सिस्टम पर फ़ाइलों की संख्या कैसे जान सकता हूं?


26

मैं जानना चाहता हूं कि मेरे फाइलसिस्टम पर कितनी फाइलें हैं। मुझे पता है कि मैं ऐसा कुछ कर सकता हूं:

find / -type f | wc -l

यह अत्यधिक अक्षम लगता है। मैं वास्तव में जो करना चाहता हूं, वह कुल संख्याओं को खोजने के लिए है जिन्हें एक 'फ़ाइल' माना जाता है।

क्या कोई बेहतर तरीका है?

ध्यान दें:

मैं ऐसा करना चाहूंगा क्योंकि मैं एक फाइल सिंक्रोनाइजेशन प्रोग्राम विकसित कर रहा हूं, और मैं कुछ सांख्यिकीय विश्लेषण करना चाहता हूं (जैसे कि औसत उपयोगकर्ता के पास कुल कितनी फाइलें हैं, सिस्टम में कितनी फाइलें हैं)। हालाँकि, मुझे उन फ़ाइलों के बारे में कुछ भी जानने की ज़रूरत नहीं है, बस वे मौजूद हैं (रास्ते बिल्कुल भी मायने नहीं रखते)। मैं विशेष रूप से प्रत्येक माउंटेड फ़ाइल सिस्टम के लिए यह जानकारी जानना चाहता हूं (और यह माउंट पॉइंट जुड़ा हुआ है)।

जवाबों:


34

--इनोड्स विकल्प dfआपको बताएगा कि कितने इनोड उपयोग के लिए आरक्षित हैं। उदाहरण के लिए:

$ df --inodes / /home
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1            3981312  641704 3339608   17% /
/dev/sda8            30588928  332207 30256721    2% /home
$ sudo find / -xdev -print | wc -l
642070
$ sudo find /home -print | wc -l
332158
$ sudo find /home -type f -print | wc -l
284204

ध्यान दें कि प्रविष्टियों की संख्या रूट (/) फ़ाइल सिस्टम की findतुलना में अधिक है IUsed, लेकिन घर / के लिए कम है। लेकिन दोनों 0.0005% के भीतर हैं। विसंगतियों का कारण कड़ी और इसी तरह की स्थितियों के कारण है।

याद रखें कि डायरेक्टरी, सिमिलिंक, UNIX डोमेन सॉकेट और नामित पाइप सभी 'फाइलें' हैं क्योंकि यह फाइल सिस्टम से संबंधित है। इसलिए find -type fध्वज का उपयोग करना एक सांख्यिकीय दृष्टिकोण से बेतहाशा गलत है।


मुझे लगता है कि यह वही है जिसकी मुझे तलाश है। क्या यह पता लगाने का कोई तरीका है कि प्रत्येक प्रकार की फ़ाइल कितनी है? यह सीधे मेरे आवेदन की जरूरत नहीं है, लेकिन उपयोगी ज्ञान हो सकता है।
बीटगैमिट

1
फाइलसिस्टम में प्रत्येक फ़ाइल के इनसाइड का निरीक्षण किए बिना नहीं, जो कि खोज करने के समान होगा।
Arsege

क्या df अधिकांश फाइल सिस्टम (ext2-4, ntfs, fat, reiserfs, आदि) को समझता है?
पीटा

यह किसी भी फाइलसिस्टम प्रकार को समझेगा जिसे आरोहित किया जा सकता है। कुछ फाइलसिस्टम प्रकार में इनोड्स नहीं होते हैं (उदाहरण के लिए, वसा); dfउन filesystems पर 0 के रूप में इनोड की कुल संख्या प्रदर्शित करेगा। अन्य प्रकारों में अंतर्निहित फाइल सिस्टम के इनकोड आँकड़े दिखाने चाहिए।
Arsege

क्या आपको यह /dev/nullदेखने के लिए त्रुटियों को पुनर्निर्देशित करना होगा कि क्या आप लाइनों को चेतावनी देंगे कि फाइलें /proc"आभासी" हैं?
n0pe

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