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 exemplo. diretório contendo arquivos jpeg: como abrir facilmente apenas o jpeg mais recente no diretório atual?
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.
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.
Tags command-line ls xargs linux