ls -rt (Como listar apenas o ÚLTIMO arquivo? por exemplo: | xargs gnome-open)

10

por exemplo. diretório contendo arquivos jpeg: como abrir facilmente apenas o jpeg mais recente no diretório atual?

    
por ajo 09.10.2010 / 09:57

3 respostas

16

ls -rt | tail -1

O -1 diz para final mostrar apenas uma linha se você quiser ser mais claro você pode usar a opção longa em vez

ls -rt | tail --lines=1

    
por 09.10.2010 / 10:10
16

O que você realmente quer é o primeiro arquivo de uma lista baseada em tempo não-reversível.

ls -t | head -1

O -r é para humanos porque queremos que a última coisa na tela tenha rolado, ao invés da primeira. No caso de a máquina descobrir, é melhor usar head e parar após o primeiro, em vez de ter tail na lista.

    
por 09.10.2010 / 15:52
2

Com zsh:

gnome-open *.jpg(om[1])

O qualificador glob (om) classifica as correspondências aumentando a idade (ou seja, em ordem cronológica). O qualificador de glob ([1]) seleciona apenas a primeira correspondência. Você pode usar *.jpg(om[1,4]) para abrir os 4 arquivos mais recentes e assim por diante.

Em outros shells:

gnome-open "$(\ls -t *.jpg | head -1)"

mas cuidado se você tiver caracteres não imprimíveis ou bytes nos nomes dos arquivos (o que geralmente acontece se você tiver nomes de arquivo em um conjunto de caracteres diferente da sua localidade), ls os substituirá por ? . não funciona.

    
por 09.10.2010 / 13:36