Podświetl trzy ostatnie zaktualizowane pliki w wyjściu ls


10

Czy jest jakiś sposób na przeładowanie lub zawinięcie lspolecenia, aby podświetliło / podkreśliło / w inny sposób uczyniło oczywistym trzy ostatnie zmodyfikowane pliki?

Wiem, że mogę po prostu ls -rtlzamówić według czasu odwrotnej modyfikacji, ale zwykle potrzebuję alfabetycznej listy plików, mimo że chciałbym szybko zidentyfikować ostatni plik, który sam lub inny programista zmodyfikowałem.

Odpowiedzi:


15

Wydaje się, że następujące działania działają dla mnie

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

Używa grep z podświetleniem na wejściu ls -li używa wyrażenia regularnego do wyszukiwania jednego z danych wejściowych dla trzech najstarszych poleceń. Wyszukuje również koniec linii $, aby wydrukować cały plik.

Możesz także umieścić go w funkcji, tak abyś mógł używać lll *wielu argumentów, tak jak byś używałls

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

1
+1: To o wiele ładniejsze niż szalony liniowiec, który w końcu wymyśliłem: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
To jest absurdalnie epickie. : D
whoami

Świetna robota. Zwrócę uwagę, że jeśli spróbujesz tego w katalogu, który zawiera mniej niż trzy pliki, wówczas pojawia się błąd „grep: Niepoprawny koniec zakresu”.
Jason R

1
@dotancohen Nie ma za co, dziękuję za wyzwanie :)
Bernhard

1
function lll () { command grep --color -E -- "$(ls -rtl $1 | tail -n3)|$" <(ls -l $1) }Za pomocą tej funkcji możesz podać katalog jako argument, tj. lll /home@Dotancohen
Bernhard

4

Nie podświetli trzech ostatnich zmodyfikowanych plików (co moim zdaniem jest dość trudne do osiągnięcia w sposób niezawodny), ale ls++może wystarczyć do tego, czego chcesz. Podświetla pliki według względnego wieku, grupując według plików kolorowych, które mają sekundy, godziny, dni lub miesiące.

Zrzut ekranu ls ++

Możesz skonfigurować kolory tak, aby skala czasu, na której zwykle pracujesz, była bardziej widoczna (dla aktywnego kodowania najważniejszym punktem zwrotnym są dla mnie godziny kontra dni).


Fajnie dzięki. Jednak zazwyczaj korzystam z SSHing na serwerach, na których nie mogę zainstalować pakietów.
dotancohen

1
@dotancohen Jest to pojedynczy skrypt perla, powinieneś być w stanie zainstalować go w swoim katalogu domowym ( ~/binlub coś, dodać do swojej ŚCIEŻKI w profilu) - chociaż to nie zadziała, jeśli nie zostaną zainstalowane zależności.
Random832

Rozumiem, dzięki Losowo! W rzeczywistości zwykle coś mam $HOME/bin/.
dotancohen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.