ls -rt (Wie liste ich nur DIE LETZTE Datei auf? zB für: | xargs gnome-open)

16

zB Verzeichnis mit JPEG-Dateien: Wie kann man einfach nur das neueste JPEG im aktuellen Verzeichnis öffnen?

ajo
quelle

Antworten:

19

ls -rt | tail -1

Das -1sagt Schwanz nur eine Zeile zu zeigen , wenn Sie klarer sein möchten , können Sie die lange Option verwenden , anstatt

ls -rt | tail --lines=1

Nifle
quelle
4
Noch besser ist "ls -t | head -1". Siehe meinen Kommentar unten.
Andy Lester
20

Was Sie wirklich wollen, ist die erste Datei einer nicht umgekehrten zeitbasierten Liste.

ls -t | head -1

Das -r ist für Menschen, weil wir das Letzte auf dem Bildschirm wollen, das vorbeigefahren ist, und nicht das Erste. Wenn die Maschine es herausfindet, kann sie genauso gut headnach der ersten verwenden und anhalten, anstatt taildie Liste durchlaufen zu haben.

Andy Lester
quelle
3

Mit zsh:

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

Das Glob-Qualifikationsspiel (om)sortiert die Spiele nach zunehmendem Alter (dh in antichronologischer Reihenfolge). Das Glob-Qualifikationsmerkmal ([1])wählt nur die erste Übereinstimmung aus. Sie können *.jpg(om[1,4])damit die 4 neuesten Dateien öffnen und so weiter.

In anderen Schalen:

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

Beachten Sie jedoch, dass nicht druckbare Zeichen oder Bytes in Ihren Dateinamen (was normalerweise der Fall ist, wenn Sie Dateinamen in einem anderen Zeichensatz als Ihrem Gebietsschema haben) lsdurch diese ersetzt werden ?, sodass dies nicht funktioniert.

Gilles 'SO - hör auf böse zu sein'
quelle
Auf dem Mac können Sie nur openanstelle vongnome-open
Janac Meena