कैसे एक फ़ाइल का आकार शून्य हो सकता है?
हम सभी कभी-कभी अपने कंप्यूटर पर एक 'स्थिति' भर में दौड़ते हैं जो हमें पूरी तरह से चकित कर देता है, जैसे कि एक फ़ाइल जिसमें शून्य का आकार होता है, लेकिन यह कैसे संभव है? आज के SuperUser Q & A पोस्ट में एक भ्रमित पाठक के प्रश्न के उत्तर हैं.
आज का प्रश्न और उत्तर सत्र सुपरयूज़र के सौजन्य से आता है-स्टैक एक्सचेंज का एक उपखंड, क्यू एंड ए वेब साइटों का एक समुदाय-संचालित समूह है।.
प्रश्न
सुपरयूज़र रीडर यूजीन एस जानना चाहता है कि किसी फ़ाइल का आकार शून्य कैसे हो सकता है:
यह कुछ ऐसा है जो मैं भाग गया और एक उचित स्पष्टीकरण के बारे में नहीं सोच सकता था। अगर मैं एक खाली पैदा करता हूं * .txt फ़ाइल मेरे कंप्यूटर पर और फिर इसके आकार को देखें, यह शून्य के आकार को दर्शाता है। वो कैसे संभव है? मेरा मतलब है कि यदि फ़ाइल स्वयं खाली है, तो भी इसका कुछ आकार होना चाहिए (भले ही यह सिर्फ अपना नाम संग्रहीत करने के लिए हो)। इसे कैसे समझाया जा सकता है?
किसी फ़ाइल का आकार शून्य होना कैसे संभव है?
उत्तर
सुपरयूजर योगदानकर्ता डेविड श्वार्ट्ज और कॉर्ट अमोन का जवाब हमारे लिए है। सबसे पहले, डेविड श्वार्ट्ज:
यह संभव है क्योंकि वास्तव में कोई फ़ाइल नहीं है। एक नाम और मालिक के साथ एक निर्देशिका प्रविष्टि है। निर्देशिका प्रविष्टि फ़ाइल से तार्किक रूप से अलग है। उदाहरण के लिए, एक ही फ़ाइल में एक से अधिक निर्देशिका में एक से अधिक नाम हो सकते हैं.
दुर्भाग्य से, शब्द फ़ाइल का उपयोग हमेशा एक ही चीज़ को ठीक करने के लिए नहीं किया जाता है। लेकिन फ़ाइल आकार तर्क उस मॉडल से आता है जहां निर्देशिका प्रविष्टि किसी फ़ाइल को निर्देशिका में संलग्न करती है, फिर फ़ाइल नाम और संबंधित मेटा डेटा निर्देशिका में संग्रहीत किए जाते हैं.
Cort Ammon के उत्तर के बाद:
फ़ाइल आकार का शब्दार्थ अर्थ आपके द्वारा उपयोग किए जा रहे से अलग है.
कई फ़ाइल आकार हैं जो सार्थक हैं। सबसे आम एक, और जो आप यहां देख रहे हैं, वह फ़ाइल में बाइट्स की संख्या है। यदि फ़ाइल एक खाली पाठ फ़ाइल है, तो इसमें वास्तव में शून्य बाइट्स हो सकते हैं। यह संख्या प्रोग्रामर के लिए महत्वपूर्ण है क्योंकि हमें अक्सर एक फ़ाइल खोलने, सभी डेटा पढ़ने और इसे बंद करने की आवश्यकता होती है। हमें यह जानने की जरूरत है कि फाइल में कितने बाइट्स होंगे ताकि हम आगे की योजना बना सकें.
एक अन्य अर्थ उस तरह से उत्पन्न होता है जिस तरह से अधिकांश फाइल सिस्टम डेटा को स्टोर करते हैं। ज्यादातर फाइल सिस्टम ब्लॉक में डेटा स्टोर करते हैं। उदाहरण के लिए, फ़ाइल सिस्टम 64 kB ब्लॉक में डेटा स्टोर कर सकता है, जिसका अर्थ है कि वह कभी भी कुछ भी आवंटित नहीं करेगा जो कि 64 kB से अधिक नहीं है। यह अक्षम लगता है, लेकिन यह बहीखाता पद्धति को थोड़ा सरल बना सकता है, और अक्सर सरल का मतलब तेज होता है.
एक तीसरा अर्थ, जिस पर आप टगिंग कर रहे हैं, एक फाइल की उपस्थिति का वर्णन करने के लिए हार्ड-ड्राइव पर आवश्यक बिट्स की वास्तविक संख्या होगी। इसमें वह जानकारी शामिल है जो आमतौर पर फ़ाइल से अलग संग्रहीत होती है। उदाहरण के लिए, लिनक्स में, फ़ाइल नाम की अवधारणा फ़ाइल युक्त निर्देशिका के लिए इनकोड में संग्रहीत होती है। [अन्य टिप्पणियों के इनपुट के आधार पर, यह (तकनीकी रूप से) निर्देशिका के डेटा में संग्रहीत है। जब मैंने यह लिखा था, मैं छोटे-निर्देशिका मामले के बारे में सोच रहा था। 156 बाइट्स से छोटे डेटा को सीधे इनोड में स्टोर किया जा सकता है.] यह आमतौर पर इस्तेमाल किया जाने वाला अर्थ नहीं है क्योंकि यह आपकी फ़ाइल सिस्टम की जबरदस्त गहरी आंतरिक कार्यप्रणाली को जाने बिना निर्धारित करना बहुत कठिन है (जैसे कि फ़ाइल के सभी अनुमतियों को संग्रहीत करने के लिए आवश्यक स्थान के लिए लेखांकन)। हालाँकि, यदि आपके पास 1,000,000 बाइट हार्ड-ड्राइव है और यह जानना चाहते हैं कि उस हार्ड-ड्राइव पर एक फाइल कितनी बड़ी हो सकती है, तो यह आपके लिए बहुत महत्वपूर्ण अर्थ होगा!
स्पष्टीकरण में कुछ जोड़ना है? टिप्पणियों में विचार व्यक्त करो। अन्य टेक-सेवी स्टैक एक्सचेंज उपयोगकर्ताओं से अधिक उत्तर पढ़ना चाहते हैं? पूरी चर्चा धागा यहाँ देखें.