एक निर्देशिका आकार क्या निर्धारित करता है?


10

मुझे पता है कि किसी डायरेक्टरी का आकार अपने आप में फाइलों के आकार से अलग चीज है।

मुझे निर्देशिकाओं की सूची और फ़ाइलों की सूची के रूप में लगता है, इसलिए एक निर्देशिका का आकार ब्लॉक-आकार की बाधा के कारण न्यूनतम 4096 बाइट्स के साथ फ़ाइलों / निर्देशिकाओं की संख्या से संबंधित होना चाहिए।

लेकिन मेरी प्रणाली में, मेरे पास 4096 बाइट्स के साथ कई अच्छी तरह से आबादी वाले निर्देशिकाएं हैं, और कुछ निर्देशिकाएं जो काफी कम आबादी हैं जो लगभग 10 मेगाबाइट हैं। क्या आप मुझे समझा सकते हैं कि ऐसा क्यों होता है?


1
आगे पढ़ने के लिए, यह काफी जानकारीपूर्ण है: askubuntu.com/a/404716/380067
kos

3
यह केवल निर्देशिका में प्रविष्टियों की संख्या के बारे में नहीं है, बल्कि उनके नामों की लंबाई के बारे में भी है।
कैस्परड

जवाबों:


13

किसी भी समय उस निर्देशिका में उपयोग की जाने वाली फाइलसिस्टम और उस समय की अधिकतम संख्या, आकार निर्धारित करती है। एक बार जब निर्देशिका के लिए आरक्षित डिफ़ॉल्ट आकार समाप्त हो जाता है, तो निर्देशिका के लिए अधिक स्थान आवंटित किया जाता है। हालाँकि, जब संस्थाओं की संख्या कम हो जाती है, तो आवंटित स्थान स्वत: मुक्त नहीं होता है। इसलिए, अगर, एक बिंदु पर, एक निर्देशिका में 10 मिलियन इकाइयां हैं, तो यह उसी आकार का रहेगा यदि उनमें से 9,999,999 हटा दिए गए थे। यह इस यूनिक्स और लिनक्स पोस्ट की तरह दिलचस्प स्थितियों की ओर जाता है ।

$ mkdir foo; touch foo/{1..100000}; stat -c %s foo
2179072
$ rm foo/*; stat -c %s foo
2179072

यह अन्य फाइल सिस्टम के लिए जरूरी नहीं है। ext{2,3,4}फ़ाइल सिस्टम प्रभावित होते हैं। NTFS, कुछ हद तक है। tmpfsऔर btrfs नहीं हैं। ZFS बल्कि रूढ़िवादी है, मुझे 2दूसरी statकमांड के लिए आउटपुट मिला ।

सम्बंधित:


महान! मैं अभी भी सोच रहा था कि यह कैसे हो सकता है।
कोस

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