जवाबों:
यह डिस्क पर अंतरिक्ष का आकार है जो निर्देशिका के लिए मेटा जानकारी (अर्थात इस निर्देशिका से संबंधित फ़ाइलों की तालिका) को संग्रहीत करने के लिए उपयोग किया जाता है। यदि यह 1024 है, तो इसका अर्थ है कि डिस्क पर 1024 बाइट्स का उपयोग किया जाता है (यह हमेशा पूर्ण ब्लॉक आवंटित करता है) इस उद्देश्य के लिए।
"किसी निर्देशिका का आकार" ls -l
(किसी फ़ाइल प्रकार के साथ) के रूप में stat()
कॉल के द्वारा रिपोर्ट किया गया मान है statbuf.st_size
।
यह st_size
निर्देशिका के लिए क्या मतलब है, पूरी तरह से फ़ाइल सिस्टम प्रकार पर निर्भर करता है। जब तक आप फाइल सिस्टम को नहीं जानते हैं और इसकी अवधारणाओं को नहीं समझते हैं, तब तक आप मूल्य से कुछ भी नहीं निकाल सकते st_size
।
वर्तमान में आमतौर पर नामित ऐतिहासिक UNIX फाइल सिस्टम में v7-fs
, निर्देशिकाओं को 16 बाइट प्रविष्टियों को दोहराया गया था जिसमें 16 बिट इनोड संख्या और फ़ाइल नाम के 14 बाइट्स शामिल थे। एक निर्देशिका का "आकार" read(2)
ऑपरेशन के संबंध में सार्थक था और हमेशा की तरह बढ़ता या ठहरता है। .
और ..
प्रविष्टियों उन्हें मैन्युअल रूप से वर्तमान और निर्देशिका एक स्तर से ऊपर के खिलाफ कड़ी मेहनत से जोड़ने के द्वारा बनाया जाता है। एक खाली खाली युवती निर्देशिका के लिए लिंक गणना 2 है।
BSD-4.2 फाइलसिस्टम में, जिसे 1989 (SVr4) कहा जाता है ufs
, निर्देशिकाएं वैरिएबल लेंथ रिकॉर्ड्स की एक श्रंखला होती हैं, जो एक ऐसे फॉर्मेट का उपयोग करती हैं, जो स्थिर नहीं होता है, इसलिए यूजर स्पेस कमांड को इस फॉर्मेट को पढ़ने की अनुमति नहीं है। रिपोर्ट किया गया "आकार" v7-fs के अनुसार बाइट्स में आकार है, आकार आमतौर पर बढ़ता है या जैसा रहता है, लेकिन फ़ाइल सिस्टम के नए संस्करण कुछ शर्तों के तहत आकार को छोटा कर सकते हैं - लेकिन हमेशा नहीं जब आप यह उम्मीद कर सकते हैं। खाली निर्देशिका के लिए सूचित लिंक संख्या 2 है v7-fs
।
उन WOFS
फाइलों के सिस्टम में , जिन्हें मैंने 1988 और मई 1991 के बीच डिजाइन और कार्यान्वित किया था, निर्देशिका हमेशा "आकार" 0 की रिपोर्ट करती है और कभी भी एक प्रकार की सामग्री नहीं होती है जिसे read(2)
कॉल का उपयोग करके पढ़ा जा सकता है । इसका कारण यह है कि WOFS
पहला कॉपी-ऑन-राइट फाइलसिस्टम है और क्योंकि WOFS
फाइलों में डायरेक्टरी की रिपोर्ट है कि वे डायरेक्टरी में सूचीबद्ध होने के बजाय हैं। यदि आप एक WOFS
निर्देशिका का उपयोग करते हुए पढ़ते हैं readdir()
, तो आप केवल इच्छित प्रविष्टियों के लिए डेटा प्राप्त करते हैं, लेकिन कभी भी .
और के लिए नहीं ..
। रिक्त निर्देशिका की लिंक संख्या WOFS
1 है और संपूर्ण व्यवहार पूरी तरह से POSIX अनुरूप है।
में ZFS
, कि WOFS
कागजात पढ़ने के बाद लागू किया गया था । ZFS
एक कॉपी-ऑन-राइट फाइलसिस्टम है और इसके लेखक इस बात से इनकार नहीं करते हैं कि उन्होंने अवधारणाओं को कॉपी किया था WOFS
। ZFS पर निर्देशिकाएं रिपोर्ट करती number of directory entries
हैं st_size
, इसलिए रिपोर्ट किए गए "आकार" का कोई वास्तविक अर्थ नहीं है, निर्देशिका डेटा से कब्जा किए गए डिस्क स्थान के संबंध में। ZFS निर्देशिका में कोई प्रविष्टि .
और ..
प्रविष्टियाँ नहीं हैं , लेकिन यदि आप कॉल करते हैं readdir()
, तो ये प्रविष्टियाँ फ़ेक हैं और पहले दो ऑपरेशनों के लिए लौटी हैं। ZFS सूची में एकमात्र FS है जो हार्ड-लिंक निर्देशिकाओं का समर्थन नहीं करता है, लेकिन निर्देशिकाओं के लिए रिपोर्ट की गई लिंक संख्या हमेशा 2 होती है। ZFS में ये दो अनियमितताएँ गैर-POSIX ऐतिहासिक कार्यक्रमों में भ्रम को कम करने के लिए कार्यान्वित की जाती हैं।
ZFS के समान, WAFL कुछ विचारों को कॉपी करता है लेकिन सभी विचारों से नहीं WOFS
। पेपर प्रकाशित WAFL
होने के 3 साल बाद नेटप्प का लिखा WOFS
हुआ था, डब्ल्यूएएफएल कॉपी-ऑन-राइट है, लेकिन डब्ल्यूएएफएल "आकार" मानों की रिपोर्ट करता है जो इस धारणा के तहत "वास्तविक निर्देशिका आकार" हो सकता है कि निर्देशिका में सामग्री है।
एक निर्देशिका अपने और अपनी सामग्री के बारे में मेटा-डेटा के लिए 4096 बाइट्स (न्यूनतम पर) आरक्षित करती है।
इसके अलावा, 4096 बाइट्स ext2 / ext3 / ext4 फाइल सिस्टम के लिए डिफॉल्ट एलोकेशन यूनिट (ब्लॉक) है और इसके लिए कोई डायरेक्टरी कोई छोटी नहीं हो सकती है।
अलग-अलग फाइल सिस्टम पर आपको अलग-अलग डिफॉल्ट साइज वाली डिरेक्टरी मिल सकती हैं, जो कि फाइल सिस्टम के डिफॉल्ट ब्लॉक साइज के कारण है।
निर्देशिका आकार भी गतिशील रूप से बढ़ सकते हैं क्योंकि वे भरे हुए हैं, लेकिन एक बार मेटा-डेटा के लिए आरक्षित स्थान को बिना निर्देशिका को हटाए फिर से आवंटित नहीं किया जा सकता है।
एक निर्देशिका एक निर्देशिका है, एक फोन निर्देशिका की तरह। यह सिर्फ एक फाइल है जिसमें संख्याओं की सूची और उनके आगे एक नाम है। प्रत्येक नंबर फ़ाइल-सिस्टम (इनोड संख्या) में एक फ़ाइल को संदर्भित करता है और नाम फ़ाइल नाम है।
आपको उस डेटा को सहेजने के लिए डिस्क स्थान की आवश्यकता होती है, यह कैसे आवंटित किया जाता है और उगाया जाता है और सिकुड़ा फाइलसिस्टम निर्भर है।