Ls आउटपुट में तीन अंतिम अपडेट की गई फ़ाइलों को हाइलाइट करें


10

क्या lsकमांड को ओवरलोड करने या लपेटने का कोई तरीका है ताकि वह हाइलाइट / अंडरलाइन / अन्यथा स्पष्ट रूप से अंतिम तीन संशोधित फ़ाइलों को बना सके?

मुझे पता है कि मैं बस ls -rtlरिवर्स मॉडिफिकेशन समय के अनुसार ऑर्डर कर सकता हूं , लेकिन मुझे आमतौर पर इस तथ्य के बावजूद फाइलों की एक वर्णमाला सूची की आवश्यकता होती है कि मैं अंतिम फ़ाइल को जल्दी से पहचानना चाहूंगा कि खुद को या किसी अन्य देव को संशोधित किया जाए।

जवाबों:


15

निम्नलिखित मेरे लिए काम करने लगता है

 grep --color -E -- "$(ls -rtl | tail -n3)|$" <(ls -l)

यह इनपुट पर हाइलाइट के साथ grep का उपयोग करता है ls -lऔर तीन सबसे पुरानी कमांड के लिए इनपुट के लिए खोज करने के लिए एक नियमित अभिव्यक्ति का उपयोग करता है। यह $संपूर्ण फ़ाइल को प्रिंट करने के लिए अंतिम पंक्ति की खोज भी करता है।

आप इसे एक फ़ंक्शन में भी डाल सकते हैं, जैसे कि आप lll *कई तर्कों के साथ उपयोग कर सकते हैं, जैसे आप उपयोग करेंगेls

function lll ()
{
    command grep --color -E -- "$(ls -rtl $@ | tail -n3)|$" <(ls -l $@)
}

1
+1: यह पागल-लाइनर की तुलना में बहुत अच्छा है, मैं आखिरकार साथ आया:ls -l | grep --color=ALWAYS -C 1000 -E `ls -rt | tail -n 3 | perl -0777 -e '$x=join("|",split(" ",<>));print $x'`
ire_and_curses

2
यह हास्यास्पद रूप से महाकाव्य है। : D
whoami

अद्भुत कार्य। मैं ध्यान दूंगा कि यदि आप तीन निर्देशिकाओं से कम की निर्देशिका में यह कोशिश करते हैं, तो मुझे "grep: अमान्य श्रेणी अंत" त्रुटि मिलती है।
जेसन आर।

1
@dotancohen आपका स्वागत है, चुनौती के लिए धन्यवाद :)
बर्नहार्ड

1
function lll () { command grep --color -E -- "$(ls -rtl $1 | tail -n3)|$" <(ls -l $1) }इस फ़ंक्शन के साथ, आप तर्क के रूप में एक निर्देशिका दे सकते हैं, अर्थात lll /home@dotancohen
बर्नहार्ड

4

यह अंतिम तीन संशोधित फ़ाइलों को उजागर नहीं करेगा (जो मुझे लगता है कि मज़बूती से हासिल करना काफी मुश्किल काम है), लेकिन ls++आप जो चाहते हैं, उसके लिए पर्याप्त हो सकता है। यह रंग, फ़ाइलों द्वारा समूहित सापेक्ष आयु के अनुसार सेकंड, घंटे, दिन या महीने पुराना है।

ls ++ स्क्रीनशॉट

आप उन रंगों को बनाने के लिए रंगों को कॉन्फ़िगर कर सकते हैं जिन्हें आप अधिक स्पष्ट रूप से काम करने के लिए करते हैं (सक्रिय कोडिंग के लिए, घंटे बनाम दिन मेरे लिए सबसे महत्वपूर्ण क्रॉस-ओवर बिंदु है)।


अच्छा धन्यवाद। हालाँकि, मैं आमतौर पर सर्वर में एसएसएचिंग कर रहा हूं जो मैं पैकेज स्थापित नहीं कर सकता।
डॉटान्कोन

1
@dotancohen यह एक एकल पटकथा है, आप इसे अपने घर निर्देशिका ( ~/binया कुछ, प्रोफ़ाइल में अपने पथ में जोड़ें) में स्थापित करने में सक्षम होना चाहिए - हालांकि यह निर्भरता स्थापित नहीं होने पर काम नहीं करेगा।
रैंडम 832

मुझे लगता है, धन्यवाद रैंडम! वास्तव में मेरे पास आमतौर पर चीजें हैं $HOME/bin/
डॉटनचेन १oh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.