Ubuntu एक निर्देशिका के आकार को सीमित नहीं करता है, यह फ़ाइल सिस्टम द्वारा लगाया जाता है। प्रत्येक फ़ाइल और निर्देशिका एक तथाकथित आईनोड है। आप df -i
सभी माउंट किए गए फाइल सिस्टम के लिए उपयोग और उपलब्ध में इनोड की संख्या की जांच करने के लिए उपयोग कर सकते हैं ।
मैंने सिर्फ 1 मिलियन और एक फाइल बिना किसी समस्या के बनाई है क्योंकि 50 जीबी (46 GiB) के मेरे ext4 होम विभाजन के लिए मेरी इनकोड सीमा काफी बड़ी है।
मैंने फ़ाइलों को बनाने के लिए शेल विस्तार का उपयोग किया, touch
उपयोगिता के साथ :
mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}
इससे 1000001 फाइलें बनाई जा सकती हैं जिन्हें सत्यापित किया जा सकता है ls | wc -l
। क्यों 300000..600000
और क्या नहीं 300001..600000
? क्योंकि मैं अंत में उस 1 को डालने के लिए बहुत आलसी था।
df -i
की तरह लगता है:
/dev/sda6 3055616 1133635 1921981 38% /home
अब परीक्षण फ़ाइलों को निकालें ( cd ..&&rm -f test
बहुत अधिक समय लगा, इसलिए rm
फ़ाइल नाम के साथ उपयोग करें ):
rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f
और फ़ाइलों को हटाने के तुरंत बाद उपयोग में इनोड की संख्या कम हो गई:
/dev/sda6 3055616 133634 2921982 5% /home
ध्यान दें कि भले ही फाइलसिस्टम इतनी बड़ी संख्या में फाइल की अनुमति देता है, लेकिन इतनी बड़ी फाइलों को एक ही डायरेक्टरी में स्टोर करना एक भयानक विचार है। कम से कम कुछ उपनिर्देशिका जैसे संरचना के साथ उपयोग करें f/i/l/e/filename.ext
। प्रोग्राम अक्सर बड़ी मात्रा में फ़ाइलों की अपेक्षा नहीं करते हैं।
ext4
एक फ़ाइल प्रकार है, एक फ़ाइल एक्सटेंशन नहीं है। क्या आप पंक्तिबद्ध संपादन के लिए निर्देशिका नहीं बना सकते हैं? मुझे संदेह है कि वे प्रोग्राम इतनी बड़ी फ़ाइल मात्रा के साथ अच्छी तरह से चल सकते हैं।