लिनक्स में निर्देशिका का आकार कैसे प्राप्त करें

How Get Size Directory Linux



लिनक्स में निर्देशिका के आकार को जानना उतना सीधा नहीं है जितना लगता है। Ls -s कमांड फाइलों और उप-निर्देशिकाओं को उनके आकार के साथ सूचीबद्ध करेगा। हालाँकि, निर्देशिकाओं के लिए दिए गए आकार (लगभग 4096 बाइट्स) डिस्क उपयोग नहीं हैं। निर्देशिका के लिए देखा गया आकार निर्देशिका के मेटा-डेटा का आकार है।

मेटाडेटा डेटा के बारे में डेटा है। स्पष्ट आकार डेटा का आकार है जो कंप्यूटर के सामान्य उपयोगकर्ता के लिए मायने रखता है। उपयोगकर्ता के अक्षरों, छवियों, वीडियो आदि की सामग्री (पाठ) स्पष्ट आकार का गठन करती है। यह डेटा मनमाने ढंग से कंप्यूटर में नहीं रखा जाता है। स्पष्ट आकार के डेटा को नियंत्रण में रखा जाना चाहिए। यह पहचानने योग्य होना चाहिए। यह पूरा होना चाहिए। इसके लिए अन्य आवश्यकताएं हैं। इन अतिरिक्त आवश्यकताओं को प्राप्त करने के लिए कुछ अतिरिक्त डेटा की आवश्यकता होती है, और यह अतिरिक्त डेटा मेटा-डेटा है।







याद रखें, वॉल्यूम में केवल एक निर्देशिका होती है। बाकी सब-डायरेक्टरी हैं। मूल निर्देशिका उप-निर्देशिकाओं को जन्म देती है, जो अन्य उप-निर्देशिकाओं के नीचे जाने को जन्म देती है। हालाँकि, उप-निर्देशिकाओं को आमतौर पर केवल निर्देशिका कहा जाता है। और इसलिए, केवल एक निर्देशिका ट्री है।



इसलिए, निर्देशिका का आकार प्राप्त करने के लिए ls -s उपयोगी नहीं है। तब कौन सा आदेश उपयोगी है? - ड्यू कमांड। du,डिस्क उपयोग के लिए खड़ा है। यह निर्देशिका के डिस्क उपयोग को प्रिंट करता है।



यह आलेख लिनक्स में डु कमांड की विभिन्न विशेषताओं की व्याख्या करता है, जो निर्देशिकाओं के आकार और उनकी उप-निर्देशिकाओं को जानने के लिए विभिन्न प्रोग्रामर तरीके प्रदान करता है। बैश इस आलेख के कोड नमूने के लिए उपयोग किया जाने वाला खोल है।





लेख सामग्री

डु विकल्प या तर्क के बिना

वर्तमान कार्यशील निर्देशिका वह निर्देशिका है जिसमें उपयोगकर्ता वर्तमान में काम कर रहा है। संकेत सामान्य रूप से वर्तमान कार्यशील निर्देशिका दिखाता है। बिना किसी विकल्प और तर्क के DU टाइप करना, जैसे:



का

और फिर एंटर कुंजी दबाने से वर्तमान कार्यशील निर्देशिका की सभी उप-निर्देशिकाओं के लिए डिस्क उपयोग प्रदर्शित होगा। यह इस जानकारी को वर्तमान कार्यशील निर्देशिका के उप-वृक्ष के लिए प्रदर्शित करेगा। प्रदर्शन पर एक बिंदु वर्तमान कार्यशील निर्देशिका का प्रतिनिधित्व करता है।

उप-वृक्ष के प्रत्येक पथ को डिस्प्ले पर एक पंक्ति में दर्शाया गया है। प्रत्येक पंक्ति निर्देशिका के आकार से शुरू होती है (जो पथ में अंतिम नाम है)। डिस्प्ले कुछ इस तरह हो सकता है:

8./डीआईआर1/dir2/डीआईआर3/डीआईआर4

12./डीआईआर1/dir2/डीआईआर3

16./डीआईआर1/dir2

बीस./डीआईआर1

ध्यान दें कि यह स्पष्ट नहीं है कि आकार बाइट्स या किलोबाइट्स या मेगाबाइट्स या गीगाबाइट्स में है या नहीं। प्रतीक के किलोबाइट, K का अर्थ है 1024 बाइट्स; मेगाबाइट्स ऑफ़ सिंबल, M का अर्थ है 1,048,576 बाइट्स; प्रतीक के गीगाबाइट, G का अर्थ है 1,073,741,824 बाइट्स। गुणकों को इंगित करने के लिए, -h विकल्प (स्विच) का उपयोग निम्नानुसार किया जाना चाहिए:

का -एच

तब प्रदर्शन इस तरह दिखेगा:

8.0K।/डीआईआर1/dir2/डीआईआर3/डीआईआर4

१२के./डीआईआर1/dir2/डीआईआर3

१६के./डीआईआर1/dir2

20K।/डीआईआर1

जब -h विकल्प का उपयोग किया जाता है, तो आकार को पठनीय रूप में कहा जाता है।

नोट: -ऑल विकल्प के साथ, डु कमांड फाइलों के लिए डिस्क उपयोग भी देगा; हालाँकि, फ़ाइलों के लिए डिस्क उपयोग को इस आलेख में संबोधित नहीं किया जाएगा।

अन्य निर्देशिकाओं का आकार

लिनक्स वॉल्यूम के लिए एक विशिष्ट निरपेक्ष पथ इस प्रकार है:

/घर/जॉन/कहो/dirTwo/दिरतीन/डीआईआरफोर

पहला / रूट डायरेक्टरी है। इस निर्देशिका में तत्काल उप-निर्देशिकाएँ हैं, जिनमें होम निर्देशिका भी शामिल है। होम निर्देशिका में उपयोगकर्ता की निर्देशिका होती है। यदि उपयोगकर्ता का नाम जॉन है, तो वह उपयोगकर्ता की निर्देशिका का नाम जॉन कर सकता है। उपयोगकर्ता की निर्देशिका की पहचान ~ द्वारा की जाती है। तो, उपयोगकर्ता किसी भी निर्देशिका से अपनी निर्देशिका तक पहुंचने के लिए cd ~ कमांड का उपयोग कर सकता है। dirOne उपयोगकर्ता द्वारा बनाई गई निर्देशिका है। उपयोगकर्ता इस स्तर पर अन्य निर्देशिकाएँ भी बना सकता है। dirTwo, dirThree और dirFour उपयोगकर्ता द्वारा बनाई गई उनकी पिछली निर्देशिकाओं की उप-निर्देशिकाएँ हैं।

उपयोगकर्ता किसी भी निर्देशिका से किसी भी अन्य निर्देशिका और उसके उपनिर्देशिका (उप-पेड़) के आकार को एक तर्क के रूप में पूर्ण पथ को छोड़कर, जान सकता है। उदाहरण के लिए, यदि डिस्क उपयोग की आवश्यकता है,

/घर/जॉन/कहो/dirTwo

तो आदेश होगा:

का -एच /घर/जॉन/कहो/dirTwo

या

का -एच~/कहो/dirTwo

जहां ~ उपयोगकर्ता की निर्देशिका का प्रतिनिधित्व करता है।

एक सापेक्ष पथ का उपयोग करने के लिए, उपयोगकर्ता को पहले से ही संबंधित मूल निर्देशिका में होना चाहिए। उदाहरण के लिए, यदि संकेत दिखा रहा है,

जॉन@मेजबान:~/$ . कहो

जिसका अर्थ है कि उपयोगकर्ता निर्देशिका में है, /home/john/dirOne, तो निम्न आदेश उपरोक्त आदेश के समान परिणाम देगा:

का -एचdirTwo

रास्ते अभी भी सापेक्ष होंगे। वर्तमान निर्देशिका के लिए समान जानकारी प्रदर्शित करने के लिए, बिना तर्क के उपयोग करें, या बिंदु का उपयोग करें।

इस योजना का उपयोग केवल एक निर्देशिका का आकार प्राप्त करने के लिए किया जा सकता है, पथ में अंतिम (पथ से पहले)। पथ के बीच में निर्देशिका का आकार प्राप्त करना संभव है - नीचे बहिष्कृत = पैटर्न देखें।

कुल योग

इसमें शामिल सभी निर्देशिकाओं का एक बड़ा कुल आकार तैयार किया जा सकता है। उपरोक्त स्थिति के लिए, आदेश होगा:

का -एच --कुल

स्पष्ट-आकार

स्पष्ट आकार आमतौर पर डिस्क उपयोग से छोटा होता है। हालाँकि, कुछ स्थितियों में, स्पष्ट आकार डिस्क उपयोग से बड़ा होता है; कारण - बाद में देखें। उपरोक्त सापेक्ष पथ के लिए स्पष्ट आकार प्राप्त करने का आदेश होगा:

का -एच --स्पष्ट-आकारdirTwo

अधिकतम-गहराई

-मैक्स-डेप्थ = 0 के साथ, डु केवल वर्तमान कार्यशील निर्देशिका के आकार को प्रिंट करता है; डु-मैक्स-डेप्थ = 1 के साथ, डु वर्तमान कार्यशील निर्देशिका के आकार और इसके सभी प्रथम स्तर की उप-निर्देशिकाओं के आकार को प्रिंट करता है; -मैक्स-डेप्थ = 2 के साथ, डु वर्तमान कार्यशील निर्देशिका के आकार और इसके सभी प्रथम स्तर की उप-निर्देशिकाओं और इसके सभी दूसरे स्तर की उप-निर्देशिकाओं के आकार को प्रिंट करता है; -मैक्स-डेप्थ = 3 के साथ, डु वर्तमान वर्किंग डायरेक्टरी के आकार और इसके सभी प्रथम स्तर की उप-निर्देशिकाओं, और इसके सभी दूसरे स्तर की उप-निर्देशिकाओं और इसके सभी तीसरे स्तर की उप-निर्देशिकाओं को प्रिंट करता है; यह अधिकतम-गहराई के बढ़ते मूल्य के साथ जारी है। इसके उपयोग का एक उदाहरण है:

का -एच --अधिकतम गहराई=2

सुडो कमांड

मूल निर्देशिका में अपनी उप-निर्देशिकाओं वाली निर्देशिकाओं में से एक var है। यदि उपयोगकर्ता टाइप करता है

का -एच /कहां

और एंटर दबाता है, वह महसूस करेगा कि कुछ निर्देशिकाओं के लिए अनुमति अस्वीकार कर दी गई है। यानी वह कुछ निर्देशिकाओं के आकार नहीं जान सकता। अनुमति अस्वीकार कर दी गई है क्योंकि उपयोगकर्ता सुपरयुसर नहीं है। सुपरयुसर को उन निर्देशिकाओं के आकार (डिस्क उपयोग) को देखने का विशेषाधिकार है। इसलिए, उपयोगकर्ता को उस विशेषाधिकार को प्राप्त करने के लिए, उसे sudo कमांड का उपयोग निम्नानुसार करना होगा:

सुडो का -एच /कहां

यदि शेल उपयोगकर्ता से उसका पासवर्ड मांगता है, तो उपयोगकर्ता को पासवर्ड टाइप करना होगा और एंटर दबाना होगा। सुडो कमांड के साथ, सामान्य उपयोगकर्ता (प्रोग्रामर) var निर्देशिका और समान निर्देशिकाओं में सभी निर्देशिकाओं के आकार देख सकता है।

आकार के अनुसार प्रविष्टियों को छोड़कर

– दहलीज=SIZE विकल्प उन निर्देशिकाओं को सूचीबद्ध करने की अनुमति नहीं देगा जिनका आकार SIZE से कम है। पथ के लिए,

/घर/जॉन/कहो/dirTwo/दिरतीन/डीआईआरफोर

शीघ्र के साथ[ईमेल संरक्षित]:~$, तब

का -एच --सीमा=12के डायरओने

जहां 12K का अर्थ है 12 किलोबाइट, किसी भी निर्देशिका के लिए लाइन प्रदर्शित नहीं करेगा जिसका डिस्क उपयोग 12K से कम है।

-बहिष्कृत = पैटर्न

यह विकल्प और मान निर्देशिका लाइनों को छोड़ सकते हैं जो उपयोगकर्ता लिस्टिंग में नहीं चाहता है।

अंतिम निर्देशिका के लिए लाइन को छोड़ने के लिए, पथ के dirFour

/घर/जॉन/कहो/dirTwo/दिरतीन/डीआईआरफोर

आदेश होना चाहिए:

का -एच --निकालना= कहो/dirTwo/दिरतीन/dirFour dirOne

परिणाम कुछ ऐसा होगा,

4.0K डायरवन/dirTwo/दिरतीन

८.० के डाइरोन/dirTwo

१२के डाइरोन

नोट: आकार में पथ के अंतिम स्तर निर्देशिका (dirFour) का आकार शामिल नहीं है।

केवल ऊपरी गहराई निर्देशिकाओं और उनके उप-पेड़ों के आकार के लिए, विकल्प में निचली गहराई निर्देशिकाएं नहीं हैं। तो आदेश के साथ,

का -एच --निकालना= कहो/dirTwo/dirThree dirOne

आउटपुट कुछ ऐसा होगा,

4.0K डायरवन/dirTwo

८के डाइरोन

नोट: आकार ने पेड़ के निचले लीवर निर्देशिकाओं के आकार को बाहर कर दिया है।

फिर से विचार करें, पूर्ण लिंक,

/घर/जॉन/कहो/dirTwo/दिरतीन/डीआईआरफोर

निम्न आदेश केवल dirTwo निर्देशिका का डिस्क उपयोग प्राप्त करेगा, जो पथ के भीतर एक निर्देशिका है। आदेश है:

का -एच --निकालना=/घर/जॉन/कहो/dirTwo/ * /घर/जॉन/कहो/dirTwo

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

5.0K/घर/जॉन/कहो/dirTwo

निष्कर्ष

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