में फ़ाइल समय द्वारा क्रमबद्ध फ़ाइलों की बड़ी सूची प्राप्त करें, मुझे पता है कि मेरी फाइल सिस्टम फ़ाइल संशोधन समय को मिलीसेकंड में संग्रहीत कर रहा है लेकिन मुझे PHP के माध्यम से उस जानकारी तक पहुंचने का कोई तरीका नहीं पता है। मैं यह देख जब मैं एक ls --full-time
कार्य करें:* मिलीसेकंड *
-rw-r--r-- 1 nobody nobody 900 2012-06-29 14:08:37.047666435 -0700 file1
-rw-r--r-- 1 nobody nobody 900 2012-06-29 14:08:37.163667038 -0700 file2
मैं यह सोचते हैं रहा है कि डॉट के बाद संख्या मिलीसेकेंड हैं।
तो मुझे लगता है मैं सिर्फ ls
इस्तेमाल कर सकते हैं और, संशोधन समय से तरह यह है इस तरह:
$filelist = `ls -t`;
हालांकि, निर्देशिका कभी कभी फ़ाइलों की एक विशाल संख्या है और मैंने देखा है कि ls
हो सकता है उन परिस्थितियों में बहुत धीमी है।
तो इसके बजाय, मैं find
का उपयोग कर रहा हूं लेकिन इसमें संशोधन समय के परिणाम क्रमबद्ध करने के लिए कोई स्विच नहीं है। जाहिर है, इस तरह की मिलीसेकेंड तो फ़ाइलें एक ही दूसरे में बनाया गया है कि कभी कभी गलत क्रम में सूचीबद्ध हैं करने के लिए नीचे नहीं है
$filelist = `find $dir -type f -printf "%[email protected] %p\n" | sort -n | awk '{print $2}'`;
और,: यहाँ अब मैं क्या कर रहा हूँ का एक उदाहरण है।
'sort -n' मिलीसेकंड को सॉर्ट क्यों नहीं करता है? मुझे लगता है कि दो टाइमस्टैम्प '1341013506.3000000000' और' 1341013506.6000000000' संख्यात्मक रूप से अभी भी क्रमबद्ध नहीं किया जाएगा? मैं दोहराना नहीं कर सकता क्योंकि मेरी मशीन एमएस फ़ाइल समय स्टोर नहीं करती है :) –
@mattedgod: अपनी '/ sys /' निर्देशिका की जांच करें; मेरे सिस्टम पर, यह नैनोसेकंद के समय का समर्थन करता है। – sarnold
@ कर्नाल्ड हम्म जो अजीब है, sys निर्देशिका नैनोसेकंड में है लेकिन अधिकांश दस्तावेज़ निर्देशिका नहीं हैं। दिलचस्प ... –