निर्देशिका कितनी जगह खपत करते हैं?


13

कितनी जगह खाली निर्देशिका लेते हैं?

विंडोज और एनटीएफएस फाइल सिस्टम में यह '0 बाइट्स' कहता है जो असंभव है।

एक निर्देशिका द्वारा वास्तव में कितना लिया जाता है? क्या यह फाइल सिस्टम या ऑपरेटिंग सिस्टम पर निर्भर करता है?


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

तो, NTFS पर, एक खाली डायवर्ट्री कितनी जगह लेती है? उदाहरण के लिए, यदि मैं 1 बिलियन निर्देशिका बनाता हूं, तो यह कितना स्थान है
शैडोहेरो

जैसा कि मैंने कहा, नाम और फ़ोल्डर पथ पर निर्भर करता है। मान लें कि आप सभी 26 वर्णों का उपयोग करते हैं, 1 बिलियन अद्वितीय नामों के साथ आपके पास लगभग 7 वर्ण लंबाई फ़ोल्डर नाम हो सकते हैं। तो, 7 बाइट्स * 1.000.000.000 अंतरिक्ष के लगभग 7GB के बराबर होती है। यह एक न्यूनतम है, मुझे लगता है। मुझे लगता है कि मेरे सभी ड्राइव्स में लगभग 1 मिलियन फोल्डर हैं ताकि वास्तविकता में मूल्य भी न पहुंचे। मत भूलना यह एक बहुत ही मोटा अनुमान है।
डॉकटोरो रीचर्ड

अच्छा, मैं देख रहा हूँ ... कैसे अनुमतियाँ संग्रहीत हैं?
शैडो हिरो

1
@AthomSfere हम्म ... इसका मतलब यह होगा कि फ़ोल्डर अनंत उपयोगकर्ता अनुमतियों को संग्रहीत नहीं कर सकते, जब तक कि कई एमएफटी रिकॉर्ड असाइन नहीं किए जा सकते। इसे देखने की कोशिश करेंगे।
डॉकटोरो रीचर्ड

जवाबों:


16

तकनीकी रूप से जो गुण विंडो आपको दिखा रहा है वह फ़ोल्डर की सामग्री है, कि यदि किसी डिस्क पर 0 बाइट खाली हो।

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

रिक्त निर्देशिका संरचना में रहने वाला स्थान नाम और फ़ोल्डर पथ पर निर्भर करता है। एक उदाहरण के रूप में, मान लें कि आप सभी फ़ोल्डरों को रूट ड्राइव पर कहते हैं (C :) और सभी 26 वर्णमाला वर्णों का उपयोग करें; 1 बिलियन अद्वितीय नामों के साथ आप log_26 (1.000.000.000) = लगभग 7 (6.3065) वर्ण लंबाई फ़ोल्डर नाम रख सकते हैं। तो, 7 बाइट्स * 1.000.000.000 अंतरिक्ष के लगभग 7GB के बराबर होती है।

यह एक न्यूनतम है जो केवल किसी भी संरचना पर लेने के लिए अंतरिक्ष नामों की मात्रा पर आधारित है। जैसा कि यह दिखाया जाएगा, फाइलसिस्टम फाइल की संरचना के अलावा फ़ाइल नाम के अलावा बहुत अधिक जानकारी संग्रहीत करते हैं।

मुझे लगता है कि मेरे पास मेरे सभी ड्राइव्स में लगभग 1 मिलियन फोल्डर और फाइलें हैं, ताकि मूल्य भी वास्तविकता में न पहुंचे। मत भूलना यह एक बहुत ही मोटा अनुमान है।


वर्तमान समय में सबसे अधिक उपयोग की जाने वाली फाइल सिस्टम को (यकीनन) FAT (फाइल आवंटन तालिका) और NTFS (नई तकनीक फाइल सिस्टम) के रूप में माना जा सकता है। फैट हम जानते हैं के रूप में यह उपयोग में कभी 1996, जब Windows 95 FAT32 के साथ जारी किया गया था के बाद से किया गया है। यद्यपि अन्य, अधिक लचीला फाइल सिस्टम, जैसे कि NFTS (Windows), HFS + (OSX) या ext3 (Linux) द्वारा प्रतिस्थापित किया गया है, फिर भी इसे अभी भी व्यापक रूप से हाथ में लिए जाने वाले उपकरणों या मेमोरी कार्ड या फ्लैश ड्राइव में उपयोग किया जाता है, क्योंकि यह अधिकांश OS के लिए अच्छी तरह से समर्थित है। और सबसे ऊपर, यह सरल है।

अब किस बात के लिए। एक एफएटी विभाजन में फाइलें और निर्देशिकाएं, भले ही उनमें कुछ भी न हो, एक नाम, एक स्थान, कुछ विशेषताएं, वगैरह, जो कि निर्देशिका तालिका नामक एक क्षेत्र में संग्रहीत हैं ।

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

तो, किसी भी फ़ोल्डर या निर्देशिका, एक आधुनिक ड्राइव (> 512 एमबी) पर, कम से कम 4 केबी का एक ओवरहेड है, ताकि तालिका (स्रोत) को संग्रहीत किया जा सके । हालांकि, इसका मतलब है कि आप एक ही फ़ोल्डर में 128 अलग-अलग फ़ाइलों (4 * 1024 B / 32 B = 128) को स्टोर कर सकते हैं और रिकॉर्ड को संग्रहीत करने में ओवरहेड अभी भी पहले की तरह ही 4KB है।

पहले उदाहरण पर पिग्गीबैकिंग, इसका मतलब यह होगा कि बिलियन फोल्डर में 32 जीबी की ओवरहेड होगी, बजाय अनुमानित 7 जीबी की गणना के। ये 32 जीबी स्टोर न केवल संक्षिप्त नाम (8 ASCII वर्ण), बल्कि विशेषताएँ, झंडे, पहुंच, निर्माण और संशोधन की तारीखें और अन्य विरासत विशेषताएँ हैं।

यदि आप यह सब पढ़ते हैं, तो एक सवाल हो सकता है कि आपके पास हो सकता है: "ठीक है, यह सब ठीक है और अच्छा है, लेकिन लंबे नाम कैसे हैं, जैसे कि वाबजैक या यहां तक ​​कि hashy नाम जैसे e4d909c290d0ff1ca068ffaddf22cbd0 , संग्रहीत?"

विंडोज 95 में माइक्रोसॉफ्ट ने उपयोगकर्ता अनुभव को बढ़ाने के लिए उस सुविधा को जोड़ने का फैसला किया। "निकट-मानक" प्रणाली को तोड़ने से बचने के लिए, उन्होंने VFAT (वर्चुअल FAT) नामक एक स्वच्छ वर्कअराउंड का उपयोग किया। अनिवार्य रूप से फ़ाइल में लंबे फ़ाइल नाम को फिट करने के लिए, वास्तविक फ़ाइल रिकॉर्ड से पहले अतिरिक्त रिकॉर्ड लिखे गए थे (कुछ विशेष विशेषताओं के रूप में पहले सिस्टम द्वारा नहीं देखा जाना चाहिए)। लंबा फ़ाइल नाम सिस्टम अधिकतम 255 UTF-16 (यूनिकोड) अक्षर (स्रोत) (स्रोत) की अनुमति देता है

यदि आप पहले उदाहरण को बदलना चाहते थे जैसे कि प्रत्येक फ़ोल्डर में 9 वर्ण थे, तो ओवरहेड 32 जीबी से 64 जीबी तक दोगुनी हो जाएगी, क्योंकि लंबे नाम को संग्रहीत करने के लिए एक और रिकॉर्ड लिखना होगा।


NTFS के बारे में विकिपीडिया लेख के अनुसार , सभी अनुमतियाँ मास्टर फ़ाइल तालिका में संग्रहीत हैं। यह डिस्क डिफ्रैगमेंटर के माध्यम से स्पष्ट रूप से देखा जा सकता है, जैसा कि यहां दिखाया गया है

आकार MFT रिकॉर्ड फ़ोल्डर या फ़ाइल दोनों से प्राप्त होता है, यहाँ वर्णित है :

फ़ाइल और फ़ोल्डर रिकॉर्ड 1 केबी के हैं और एमएफटी में संग्रहीत हैं, जिनमें से विशेषताओं को एमएफटी में आवंटित स्थान पर लिखा गया है। फ़ाइल विशेषताओं के अलावा, प्रत्येक फ़ाइल रिकॉर्ड में MFT में फ़ाइल रिकॉर्ड की स्थिति के बारे में जानकारी होती है।

जब किसी फ़ाइल की विशेषताएँ उस फ़ाइल के लिए MFT फ़ाइल रिकॉर्ड में फिट हो सकती हैं, तो उन्हें निवासी विशेषताएँ कहा जाता है। फ़ाइल नाम और समय टिकट जैसे गुण हमेशा निवासी होते हैं। जब किसी फ़ाइल की जानकारी उसके MFT फ़ाइल रिकॉर्ड में फिट नहीं होती है , तो कुछ फ़ाइल विशेषताएँ अप्रतिष्ठित हो जाती हैं । Nonresident विशेषताएँ डिस्क स्थान के एक या अधिक समूहों को आवंटित की जाती हैं । गैर-विशेषता विशेषता का एक भाग एमएफटी में रहता है और बाहरी समूहों को इंगित करता है। NTFS सभी विशेषता रिकॉर्ड के स्थान का वर्णन करने के लिए विशेषता सूची विशेषता बनाता है। तालिका NTFS फ़ाइल विशेषता प्रकार NTFS द्वारा वर्तमान में परिभाषित फ़ाइल विशेषताओं को सूचीबद्ध करती है।

इसलिए, NTFS में, फ़ोल्डर में कम से कम 1 KB स्थान होता है, जब तक कि उनके पास बहुत लंबा तर्क और अनुमति सूची न हो; उस बिंदु पर, एमएफटी रिकॉर्ड विभाजन में एक अतिरिक्त क्लस्टर पर कब्जा कर लेता है, जिसका आकार इस बात पर निर्भर करता है कि इसे कैसे स्वरूपित किया गया था, हालांकि उस पोस्ट में 2GB से अधिक Microsoft के लिए 4KB क्लस्टर्स की सिफारिश की गई है।


1
मुझे 1024 बाइट लंबाई पर कुछ जानकारी मिली जिसका मैंने पहले उल्लेख किया था, c-ad.bnl.gov/kinyip/windows/MFT.html यह एक बहुत अच्छी रीड है और यदि आप विस्तार करना चाहते हैं तो आपके उत्तर का लाभ उठा सकते हैं।
ऑस्टिन टी फ्रेंच

मैं विस्तार करना चाहूंगा (इसे और अधिक पूर्ण उत्तर देने के लिए, इसके बिना बहुत अधिक तकनीकी ...) हालांकि मुझे कल के लिए इसे छोड़ना होगा। वैसे भी उस स्रोत के लिए धन्यवाद।
डॉकटोरो रीचर्ड

तकनीकी सुधार: कोई 255 पथ सीमा नहीं है। बल्कि, मानक रास्तों के लिए 260 वर्णों की MAX_PATH सीमा है, और फिर सच्चे यूनिकोड पथों के लिए 32,767 वर्णों (हाँ, 32 हज़ार से अधिक वर्णों) की विस्तारित लंबाई पथ है (`\\?` सूचक का उपयोग करके) या तो? सादा विस्तारित-लंबाई पथ, या UNC पथ के रूप में)। इस बारे में अधिक जानकारी के लिए डॉक्स.माइक्रोसॉफ्ट.com/en-us/windows/win32/fileio/… देखें ।
माइक 'पोमैक्स' कामेरमेंस

3

एक वास्तविक दुनिया के उदाहरण के लिए, मैंने अभी-अभी अपना खाली स्थान रिकॉर्ड किया है, फिर मैंने एक बड़ी निर्देशिका संरचना बनाई और यह पता लगाने के लिए नए मुफ़्त को घटाया कि कितना स्थान उपयोग किया गया था। मैंने सप्ताह के प्रत्येक दिन के लिए 0-6 निर्देशिका बनाई, फिर दिन के घंटे के लिए निर्देशिका में 0-23, फिर घंटे के मिनट के लिए 0-59। कुल इसकी 10,080 निर्देशिकाओं में। मेरा डिस्क उपयोग 6,926,336 बाइट द्वारा बदल गया। यह प्रति निर्देशिका 687 बाइट्स के लिए काम करता है। यदि आप परवाह करते हैं, तो यह 1TB ड्राइव के 0.0006% तक काम करता है (यदि आप 1TB की गणना 1024 ^ 4 के रूप में करते हैं)।


3
क्या आप अपने जवाब में फाइल सिस्टम जोड़ सकते हैं? निर्देशिका नाम सभी कम थे?
फिक्सर 1234

0

विंडोज 10 पर मैंने 1,000,000 खाली फोल्डर बनाए और, अजगर के getsizeकार्य के अनुसार , इसमें 200540160 बाइट्स का स्थान लिया। यह प्रति फ़ोल्डर औसत 200.54016 बाइट्स है।

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