ls -rt (¿Cómo enumerar EL ÚLTIMO archivo? por ejemplo, para: | xargs gnome-open)

16

por ejemplo, directorio que contiene archivos jpeg: ¿cómo abrir fácilmente solo el jpeg más reciente en el directorio actual?

ajo
fuente

Respuestas:

19

ls -rt | tail -1

La cola-1 le dice que muestre solo una línea si desea ser más claro, puede usar la opción larga

ls -rt | tail --lines=1

Nifle
fuente
44
Aún mejor es "ls -t | head -1". Mira mi comentario a continuación.
Andy Lester
20

Lo que realmente desea es el primer archivo de una lista basada en tiempo no invertida.

ls -t | head -1

El -r es para humanos porque queremos lo último en la pantalla que se ha desplazado, en lugar de lo primero. En el caso de que la máquina lo descubra, también podría usar heady detenerse después del primero, en lugar de haber tailrecorrido la lista.

Andy Lester
fuente
3

Con zsh:

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

El calificador global clasifica (om)las coincidencias al aumentar la edad (es decir, en orden anti-cronológico). El calificador glob ([1])selecciona solo la primera coincidencia. Puede usar *.jpg(om[1,4])para abrir los 4 archivos más recientes, y así sucesivamente.

En otras conchas:

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

pero tenga en cuenta que si tiene caracteres o bytes no imprimibles en los nombres de sus archivos (lo que generalmente ocurre si tiene nombres de archivos en un conjunto de caracteres diferente de su ubicación), lslos reemplazará por ?, por lo que esto no funcionará.

Gilles 'SO- deja de ser malvado'
fuente
En mac, puede usar solo en openlugar degnome-open
Janac Meena