एक Unix फोल्डर में कितनी फाइलें हो सकती हैं?


21

एक Unix फोल्डर में कितनी फाइलें हो सकती हैं?

मुझे लगता है कि यह फाइलों की संख्या के समान ही होगा।


3
एक बेहतर सवाल यह हो सकता है: मुझे कितने का उपयोग करना चाहिए? stackoverflow.com/questions/466521/…
जोकिम सौर

1
मुझे अपनी साइट url के लिए site.com/username/ इत्यादि देखना पसंद है, लेकिन यह सोचकर कि (यदि इम भाग्यशाली है) 2 मिलियन से अधिक उपयोगकर्ता प्राप्त करें, जो 2 मिलियन से अधिक फ़ोल्डर होंगे, क्योंकि मैं नहीं PHP जैसी एक स्क्रिप्ट का उपयोग करना चाहते हैं जैसे कि एक modrewrite के साथ मैं एक फ़ोल्डर में फ़ोल्डर्स के अन्य possibilitie को देख रहा था

1
अपने आप को एक एहसान करो और एक पुनर्लेखन योजना के साथ उपनिर्देशिका बनाएं।
पीटर आइसेनट्राट

जवाबों:


20

प्रति फ़ाइल सिस्टम बदलता है, http://en.wikipedia.org/wiki/Comparison_of_file_systems


9
मुझे वह तालिका बेहतर लगी जब उसमें यह बताने के लिए एक कॉलम था कि फाइल सिस्टम आपकी पत्नी की हत्या करेगा या नहीं।
पॉल टॉम्बलिन

जबरदस्त हंसी !
जाच


15

सभी मौजूदा यूनिक्स फाइलसिस्टम पर एक निर्देशिका एक व्यावहारिक रूप से असीमित संख्या में फाइलों को पकड़ सकती है । जबकि "असीमित" डिस्कस्पेस और इनोड्स द्वारा सीमित है - जो भी पहले बाहर चलाता है।

पुराने फ़ाइल सिस्टम डिज़ाइन ( ext2 , UFS , HFS + ) के साथ चीजें धीमी हो जाती हैं यदि आपके पास एक निर्देशिका में कई फाइलें हैं। आमतौर पर चीजें 10,000 फाइलों के आसपास दर्दनाक होने लगती हैं। नए फाइलसिस्टम ( ReiserFS , XFS , ZFS , UFS2 ) के साथ आप सामान्य प्रदर्शन की बाधाओं को देखे बिना एक निर्देशिका में लाखों फाइलें रख सकते हैं।

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

मैंने UFS2 पर कई मिलियन फाइलों के साथ एक निर्देशिका का खुशी-खुशी इस्तेमाल किया और जब तक मैं निर्देशिका को हटाना नहीं चाहता था, तब तक कोई समस्या नहीं देखी - जो कई बार लिया।


13

यह निर्भर करता है कि कितने inodes फाइल सिस्टम के साथ बनाया गया था। निष्पादित

df -i 

आपको मुफ्त इनोड की संख्या देगा। यह एक फाइलसिस्टम कितनी फाइलों की एक व्यावहारिक सीमा है और इसलिए एक निर्देशिका पकड़ सकता है।


1
हालाँकि, कई फाइल सिस्टम में प्रति निर्देशिका फ़ाइलों की एक सीमा होती है, भले ही इनोड की संख्या मुफ्त हो।

1
हां, लेकिन प्रश्न ने UNIX फाइल सिस्टम को लक्षित किया और जहां तक ​​मुझे पता है कि सभी आधुनिक UNIX फाइल सिस्टम एक निर्देशिका में फाइलों की संख्या को सीमित नहीं करते हैं।

6

मुझे लगता है कि आप एक ही स्थान पर बहुत सारी फाइलें संग्रहीत करने की सोच रहे हैं, नहीं?

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

मुझे यह याद करते हुए याद आता है कि अधिकांश व्यावहारिक उपयोगों के लिए हज़ार का एक जोड़ा बहुत अधिक है। आम तौर पर समाधान समूहीकरण को तोड़ने के लिए है। अर्थात्,

/some/path/to/dir/a/
/some/path/to/dir/b/
...
/some/path/to/dir/z/

और अपनी फाइलों को उनकी हैश के अनुसार उपयुक्त उप-निर्देशिका में संग्रहीत करें basename। एक सुविधाजनक हैश चुनें, पहला पात्र साधारण मामलों के लिए कर सकता है।


क्रिस्टियन Ciupitu टिप्पणी में लिखते हैं कि XFS , और संभवतः अन्य बहुत नई फ़ाइल-सिस्टम, का उपयोग log(N), पकड़ निर्देशिका सामग्री को खोज योग्य संरचनाओं तो इस बाधा बहुत है ameliorated


5
कुछ आधुनिक फाइलसिस्टम, जैसे XFS में रैखिक खोज शामिल नहीं है। एक्सएफएस की बी-ट्री तकनीक इसे सीधे ब्लॉक में जाने में सक्षम बनाती है और / या परिष्कृत सूचकांकों ( uoks.uj.edu.pl/resources/flugor/IRIX/xfs-whitegaper.html से ) का उपयोग करके फ़ाइल के स्थान को बढ़ाती है
क्रिस्टियन सियुपिटु

आह! मुझे नहीं पता था। धन्यवाद। पाठ में जोड़ देगा।
dmckee

1
Ext3 के लिए, आपको "dir_index" सुविधा को सक्रिय करना होगा, cf. tune2fs (8)।

0

ext3यदि आप एक निर्देशिका में लगभग 20k + फ़ाइल है, तो सबसे सामान्य लिनक्स फाइल सिस्टम स्वरूपों में से एक वास्तव में सुस्त हो जाता है। भले ही यह कितने भी धारण कर ले, आपको एक ही डायरेक्टरी में कई फाइलें रखने से बचने की कोशिश करनी चाहिए।


0

आपके द्वारा छोड़ी गई टिप्पणी से, मुझे लगता है कि आप वास्तव में इस बात की परवाह नहीं करते हैं कि आपका FS कितनी फ़ाइलों / फ़ोल्डरों को होस्ट कर सकता है।

आपको संभवतः ModRewrite और rewriting site.com/username to site.com/?user= या कुछ इस तरह का उपयोग करने पर विचार करना चाहिए और अपने सभी डेटा को डेटाबेस में स्टोर करना चाहिए। प्रति उपयोगकर्ता एक फ़ोल्डर बनाना आम तौर पर आवश्यक नहीं है (और एक अच्छा विचार नहीं है)।

उस ने कहा, प्रत्येक फाइलसिस्टम की सीमाएँ होती हैं, और dfयह बता सकता है कि आपके सिस्टम के प्रत्येक विभाजन पर कितने इनकोड उपलब्ध हैं।

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