(जवाब में थोड़ी देर ...)
एक फ़ाइल का आकार कैसे हो सकता है शून्य उपरोक्त उत्तरों द्वारा प्रदान की तुलना में थोड़ा अधिक जटिल है। इस सवाल को Win7 टैग किया गया है, लेकिन अन्य "सरल" फ़ाइल सिस्टम जैसे कि FAT या NTFS को देखना उपयोगी हो सकता है क्योंकि अवधारणाएं समान हैं।
डिस्क को "पता नहीं" है कि एक फाइल क्या है और एक निर्देशिका क्या है; यह छोटे ब्लॉक में सभी डेटा है। ओएस डेटा ब्लॉक के अर्थ के बीच अंतर करता है। पहले कुछ विशेष, लेकिन बाकी के ब्लॉक या तो डेटा के बारे में जानकारी रखते हैं (उदाहरण के लिए: फ़ाइल का नाम, फ़ाइल की लंबाई, डेटा को रखने वाला पहला डेटा ब्लॉक), या स्वयं डेटा।
एक निर्देशिका एक विशेष "फ़ाइल" है जिसका "डेटा" ओएस समझता है एक सूचना ब्लॉक है जिसमें फ़ाइलों के बारे में जानकारी है, न कि फाइलों की सामग्री। एक अच्छा सादृश्य एक भौतिक पुस्तकालय और कार्ड कैटलॉग है। डेटा ब्लॉक के रूप में सूचना ब्लॉकों के बारे में सोचें और डेटा ब्लॉक के रूप में अलमारियों (कार्ड कैटलॉग भी एक शेल्फ जैसी संरचना पर बैठता है)।
जब आप एक फ़ाइल बनाते हैं (UNIX touch
कमांड के साथ कहते हैं ), OS पहली बार सूचना ब्लॉक (निर्देशिका) में एक प्रविष्टि बनाता है, जिसमें निम्न शामिल हैं:
- नाम = My_File.txt
- लंबाई = 0
- डेटा ब्लॉक शुरू करना = एन / ए
- अतिरिक्त जानकारी (स्वामी, अनुमतियां, बनाई / अपडेट / संशोधित तिथि), आदि
केवल अगर "लिखने" के लिए कुछ डेटा है तो क्या यह डेटा को संग्रहीत करने के लिए एक खाली डेटा ब्लॉक खोजने का प्रयास करता है। लेकिन डेटा ब्लॉक तय आकार में (32K कहते हैं) डिस्क के लिए सुविधाजनक है और ओएस को पढ़ने के लिए। यदि आप केवल "हैलो" लिखते हैं, तो अधिकांश ब्लॉक "खाली" है (वास्तव में शून्य नहीं हो सकता है, लेकिन जो पहले था वहां से कचरा हो सकता है), इसलिए तालिका भी अब आकार को लंबाई में अपडेट करती है (कहें 5 चार्ट + अंत फ़ाइल) ताकि आपको खराब सामान न मिले।
जब आप "फ़ाइल" को लंबाई> ब्लॉक आकार में अपडेट करते हैं, तो ओएस नए ब्लॉक को डेटा लिखता है और यह कहने के लिए डेटा ब्लॉक को अपडेट करता है कि फ़ाइल अगले ब्लॉक पर पहले (और इसी तरह) जारी है और लंबाई अपडेट की गई है। नई लंबाई (विवरण भिन्न)।
आपके साथ जो समाप्त होता है वह डेटा ब्लॉक (फ़ाइल सामग्री) की जंजीरों के बारे में जानकारी के साथ सूचना ब्लॉक (निर्देशिका या सूची) का एक संग्रह है।
तार्किक रूप से, यह यह भी बताता है कि क्यों एक ही फाइल सिस्टम पर एक फाइल तेजी से खिसक रही है जबकि एक कॉपी में लंबा समय लगता है। ओएस को केवल एक निर्देशिका (सूचना डेटा ब्लॉक) से प्रविष्टि को हटाने और दूसरे में जोड़ने के लिए 2 निर्देशिका ब्लॉकों को संपादित करना होगा। एक फ़ाइल को हटाएं: निर्देशिका ब्लॉक में प्रविष्टि को हटा दें, फ़ाइल डेटा ब्लॉक को पुनः प्राप्त करने के लिए खाली कर दें।
ps: सिर्फ इसलिए कि कार्ड कैटलॉग में किसी पुस्तक के लिए प्रविष्टि है, इसका मतलब यह नहीं है कि यह ठंडे बस्ते में है (शायद बाहर की जाँच की या खो गया); फ़ाइल का आकार ०।
pps: पुस्तकालय के अंदर एक गलत पुस्तक का अर्थ है खोज पुस्तकालय, या कंप्यूटर शब्दों में: chkdsk या मरम्मत डिस्क!
UNIX इनोड्स के बारे में पढ़कर या संस्करण नियंत्रण प्रणालियों (ClearCase, TFS, Git, आदि) की सराहना करते हुए एक बड़ी समझ को चमकाया जा सकता है, न केवल फाइलों और निर्देशिकाओं, बल्कि फाइलों के संस्करणों और यहां तक कि निर्देशिकाओं के संस्करणों का प्रबंधन भी। ज्यादातर मामलों में, सब कुछ एक डेटाबेस में संग्रहीत किया जाता है और उपयोगकर्ता को शास्त्रीय निर्देशिका संरचना और फ़ाइलों के रूप में प्रस्तुत करने के लिए प्रस्तुत किया जाता है!