ls -rt (como listar apenas o último arquivo? por exemplo: | xargs gnome-open)

16

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

ajo
fonte

Respostas:

19

ls -rt | tail -1

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

ls -rt | tail --lines=1

Nifle
fonte
4
Ainda melhor é "ls -t | head -1". Veja meu comentário abaixo.
Andy Lester
20

O que você realmente deseja é o primeiro arquivo de uma lista baseada em tempo não revertida.

ls -t | head -1

O -r é para humanos, porque queremos a última coisa na tela que rolou, e não a primeira. No caso da máquina descobrir, ela também pode usar heade parar após a primeira, em vez de tailpercorrer a lista.

Andy Lester
fonte
3

Com zsh:

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

O qualificador glob classifica (om)as partidas aumentando a idade (ou seja, em ordem anticronológica). O qualificador 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 outras conchas:

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

mas lembre-se de que, se você tiver caracteres ou bytes não imprimíveis nos nomes dos arquivos (o que normalmente acontece se os nomes dos arquivos tiverem um conjunto de caracteres diferente do seu código de idioma), lseles serão substituídos por ?, portanto, isso não funcionará.

Gilles 'SO- parar de ser mau'
fonte
No mac, você pode usar apenas em openvez degnome-open
Janac Meena 18/02