मैं रिवर्स कालानुक्रमिक क्रम में फाइलें कैसे ढूँढ सकता हूं?


17

मैं सबसे हाल ही में सबसे पहले (निर्माण के) टाइमस्टैम्प द्वारा क्रमबद्ध उपनिर्देशिकाओं में फाइलें ढूंढना चाहता हूं।

मैंने मैन पेज देखा है लेकिन ऐसा लगता है कि यह आपको टाइमस्टैम्प द्वारा सॉर्ट करने के बजाय टाइमस्टैम्प द्वारा फ़िल्टर करने देता है।

findइसे पूरा करने के लिए मैं क्या विकल्प पास कर सकता हूं ? वैकल्पिक रूप से, मैं इसे किसी अन्य उपकरण के साथ कैसे जोड़ सकता हूं, जैसे sortटाइमस्टैम्प द्वारा सॉर्ट करना?


1
आप findकिसी विशेष क्रमबद्ध क्रम में कुछ भी नहीं कर सकते हैं , गहराई-पहली खोज और चौड़ाई-प्रथम खोज के बीच चयन करने से परे।
जोनाथन लेफ़लर

@ merlin2011, कृपया अपने उत्तर के चयन की यहां समीक्षा करें - वर्तमान में चयनित उत्तर छोटी गाड़ी है (ऐसे आउटपुट उत्पन्न करेगा जो वास्तव में सही ढंग से सॉर्ट नहीं किए गए हैं) जब एक से अधिक फ़ाइलों को पाया जाता है, findतो उन्हें एक उदाहरण के लिए पास किया जा सकता है ls
चार्ल्स डफी

@CharlesDuffy, नोट के लिए धन्यवाद! मैंने स्वीकृत उत्तर अपडेट कर दिए हैं।
मर्लिन 20171 3

जवाबों:


32

जबकि पॉल का समाधान आम तौर पर ठीक होता है, इसमें बस से अधिक I / O शामिल होते हैं:

find bin/ -type f -printf '%Ts\t%p\n' | sort -nr | cut -f2

क्या होगा अगर findलाखों फाइलें लौटाता है? क्या उन सभी को एक लंबी सूची के रूप में क्रमबद्ध नहीं किया जा रहा है? क्या यह अभी भी कुशल होने जा रहा है? (प्रत्येक निर्देशिका को स्वतंत्र रूप से छाँटने के बजाय।)
पीटर मोर्टेंसन

1
फ़ाइल नामों में मज़ाकिया पात्रों के साथ काम नहीं करता है, जैसे कि newlines
बोरिस ब्रोड्स्की

2
यह user7385 के उत्तर पर केवल एक टिप्पणी के योग्य है, लेकिन मेरे पास ऐसा करने के लिए प्रतिष्ठा नहीं है। find bin/ -type f -printf '%Ts\t%p\0' | sort -nrz | cut -f2 -z | xargs -0 lsनए संस्करणों में cut-z विकल्प होता है, इसलिए नई सूची वाले फ़ाइलनाम काम करेंगे।
मैटब्लिसटेट

I / O की राशि भी इस उत्तर को पसंद करने का प्राथमिक कारण नहीं है - शुद्धता बहुत अधिक महत्वपूर्ण अंतर है। xargs -0 ls -tदृष्टिकोण सही ढंग से काम नहीं करेगा जब वहाँ इतने सारे फ़ाइलें जो कर रहे हैं xargsकी जरूरत है शुरू करने के लिए lsएक बार से अधिक है, लेकिन इस दृष्टिकोण कार्य करने के लिए जारी रहेगा।
चार्ल्स डफी

@PeterMortensen, "उन सभी को एक बहुत लंबी सूची के रूप में क्रमबद्ध कर रहा है" उन्हें हल करने का एकमात्र तरीका है जो वास्तव में एक सही परिणाम देता है। इसके अलावा, अन्य / स्वीकृत जवाब "प्रत्येक निर्देशिका को स्वतंत्र रूप से सॉर्ट नहीं करता है " या तो (यदि कोई बिना किसी एकल निर्देशिका को केवल क्रमबद्ध करना चाहता था, तो कोई भी उपयोग -maxdepth 1कर सकता है find)।
चार्ल्स डफी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.