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?

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


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.


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á.


No mac, você pode usar apenas em openvez degnome-open
Janac Meena 18/02
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.