Realce os três últimos arquivos atualizados na saída ls

10

Existe alguma maneira de sobrecarregar ou agrupar o comando ls para que ele realce / sublinhe / caso contrário torne óbvios os três últimos arquivos modificados?

Eu sei que posso simplesmente ls -rtl pedir por tempo de modificação reversa, mas eu geralmente preciso de uma lista alfabética de arquivos, apesar do fato de que eu gostaria de identificar rapidamente o último arquivo que eu ou outro dev modificado.

    
por dotancohen 27.09.2012 / 08:27

2 respostas

15

O seguinte parece funcionar para mim

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

Ele usa o grep com destaque na entrada ls -l e usa uma expressão regular para procurar por uma das entradas dos três comandos mais antigos. Ele também procura pelo fim de linha $ para imprimir o arquivo inteiro.

Você também pode colocá-lo em uma função, de modo que você possa usar lll * com vários argumentos, da mesma forma que usaria ls

function lll ()
{
    command grep --color -E -- "$(ls -rtl $@ | tail -n3)|$" <(ls -l $@)
}
    
por 27.09.2012 / 09:50
4

Ele não destacará os três últimos arquivos modificados (o que, na minha opinião, é uma coisa difícil de se conseguir de forma confiável), mas ls++ pode ser suficiente para o que você deseja. Ele destaca arquivos por idade relativa, agrupando por arquivos de cor que são segundos, horas, dias ou meses.

Você pode configurar as cores para tornar a escala de tempo com a qual você tende a trabalhar mais aparente (para codificação ativa, horas versus dias é o ponto de passagem mais importante para mim).

    
por 27.09.2012 / 09:04