मैं एक निर्देशिका में अंतिम 5 संशोधित फ़ाइलों को कैसे सूचीबद्ध कर सकता हूं?


138

मुझे पता है ls -tकि संशोधित समय के अनुसार सभी फाइलें सूचीबद्ध होंगी। लेकिन मैं इन परिणामों को केवल अंतिम n फाइलों तक कैसे सीमित कर सकता हूं ?


10
आदेश को ls -lrtउलटने से किसी की मदद हो सकती है।
पीजे ब्रुनेट

इसे @PJBrunet से प्यार है। मैं हमेशा के साथ ls'ing की आदत बनाई है के tharlरूप में यह सब कुछ मैं की जरूरत है जाता है।
एडम ग्रांट

जवाबों:


246

सिर या पूंछ का उपयोग करके देखें। यदि आप 5 सबसे हाल ही में संशोधित फ़ाइलें चाहते हैं:

ls -1t | head -5

-1 (वह एक है) प्रति पंक्ति एक फ़ाइल कहता है और सिर कहता है कि पहले 5 प्रविष्टियां लें।

यदि आप अंतिम 5 कोशिश चाहते हैं

ls -1t | tail -5

2
अगर मुझसे गलती नहीं हुई है, तो शेल lsकई कॉलमों के आउटपुट को दर्शाता है , लेकिन lsएक बार में 1 फ़ाइल / डीआईआर के साथ निम्नलिखित कमांड को आउटपुट किया जाता है
एलेक्स

यह मामला प्रतीत होता है। अच्छा सरलीकरण।
पॉल रूबेल

3
यह शीर्ष पर कुल की उपेक्षा करता है:ls -1t | head -n 6 | tail -n 5
रयान

1
मुझे कुल नहीं दिखता है, लेकिन अगर कोई ऐसा है जो निश्चित रूप से काम करेगा।
पॉल रूबेल

18

स्वीकृत उत्तर केवल फ़ाइल नाम को सूचीबद्ध करता है, लेकिन शीर्ष 5 फ़ाइलों को प्राप्त करने के लिए कोई भी उपयोग कर सकता है:

ls -lht | head -6

कहाँ पे:

-l सूची प्रारूप में आउटपुट

-h आउटपुट मानव को पठनीय बनाता है (अर्थात फ़ाइल आकार kb, mb, आदि में दिखाई देता है)

-t सबसे हाल ही में संशोधित फ़ाइल पहले रखकर आउटपुट प्रकार

head -65 फ़ाइलों को दिखाएगा क्योंकि lsआउटपुट की पहली पंक्ति में ब्लॉक आकार को प्रिंट करता है।

मुझे लगता है कि यह थोड़ा अधिक सुरुचिपूर्ण और संभवतः अधिक उपयोगी दृष्टिकोण है।

उदाहरण आउटपुट:

total 26960312 -rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py -rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf -rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf -rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf -rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv


12

tailकमांड का उपयोग करें :

ls -t | tail -n 5

यह 5 सबसे पुराना देता है। आपको 5 नवीनतम प्राप्त करने के लिए सॉर्ट ( ls -tr) या headइसके बजाय का उपयोग करने की आवश्यकता है tail
हेडबैंक

2

डिफ़ॉल्ट रूप से ls -t रूप से आउटपुट को नवीनतम से सबसे पुराने तक, इसलिए उपयोग करने के लिए आदेशों का संयोजन निर्भर करता है कि आप अपने आउटपुट को किस दिशा में ऑर्डर करना चाहते हैं।

नवीनतम से सबसे पुरानी ऑर्डर की गई 5 नई फ़ाइलों के लिए, headआउटपुट की पहली 5 पंक्तियों को लेने के लिए उपयोग करें:

ls -t | head -n 5

सबसे पुरानी से नवीनतम ऑर्डर की गई 5 नई फ़ाइलों के लिए, -rस्विच को रिवर्स lsऑर्डर क्रम में उपयोग करें, और tailआउटपुट की अंतिम 5 पंक्तियों को लेने के लिए उपयोग करें:

ls -tr | tail -n 5

1

ls -tनिर्माण के समय की सूची को संशोधित अंतिम समय तक न रखें। का प्रयोग करें ls -ltcआप पहली बार (ऊपर से नीचे) के लिए पिछले से अंतिम संशोधित समय से सूची फ़ाइलें करना चाहते हैं। इस प्रकार अंतिम n को सूचीबद्ध करने के लिए:ls -ltc | head ${n}


1
आप किस प्लेटफ़ॉर्म / संस्करण का उल्लेख करते हैं? क्या आप लिंक प्रदान कर सकते हैं? को देखते हुए linux मानव पेज पैदावार तुम क्या राज्य के विपरीत: -t sort by modification time, newest first
Joma
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.