का उपयोग
ls -1 -f
के बारे में 10 गुना तेजी से है और यह करने के लिए आसान है (मैं 1 लाख फाइलों के साथ परीक्षण किया गया है, लेकिन अपने मूल समस्या 6 800 000 000 फ़ाइलें था)
लेकिन मेरे मामले में मुझे यह जांचने की आवश्यकता है कि कुछ विशिष्ट निर्देशिका में 10 000 से अधिक फ़ाइलें हैं या नहीं। अगर 10 000 से अधिक फाइलें थीं, तो मुझे अब दिलचस्पी नहीं है कि कितनी फाइलें हैं। मैंने प्रोग्राम को छोड़ दिया ताकि वह तेजी से दौड़ सके और बाकी को एक-एक करके पढ़ने की कोशिश न करें। यदि 10 000 से कम हैं, तो मैं सही राशि प्रिंट करूंगा। मेरे प्रोग्राम की गति ls -1 -f के समान है यदि आप फ़ाइलों की मात्रा से पैरामीटर के लिए बड़ा मान निर्दिष्ट करते हैं।
आप टाइप करके मौजूदा निर्देशिका में मेरा कार्यक्रम find_if_more.pl उपयोग कर सकते हैं:
find_if_more.pl 999999999
तुम सिर्फ अगर वहाँ n फ़ाइलों की तुलना में अधिक कर रहे हैं, स्क्रिप्ट बहुत साथ ls की तुलना में तेजी खत्म हो जाएगा -1 -f रुचि रखते हैं बड़ी मात्रा में फाइलें।
#!/usr/bin/perl
use warnings;
my ($maxcount) = @ARGV;
my $dir = '.';
$filecount = 0;
if (not defined $maxcount) {
die "Need maxcount\n";
}
opendir(DIR, $dir) or die $!;
while (my $file = readdir(DIR)) {
$filecount = $filecount + 1;
last if $filecount> $maxcount
}
print $filecount;
closedir(DIR);
exit 0;
यह मौजूदा निर्देशिका में फ़ाइलों को ढूंढना होता है, और भी इसमें 4 लाख फ़ाइलें और एक ही तरीका है के साथ एक निर्देशिका मैं पहली बार मंथन का एक बहुत बिना तुरंत फ़ाइलें थूक से बाहर करने के लिए ls मिला किसी भी उपनिर्देशिका में। – mwfearnley