ls -rt (Wie kann ich nur die letzte Datei auflisten? zB für: | xargs gnome-open)

31945
ajo

zB Verzeichnis mit jpeg-Dateien: Wie kann man einfach das aktuellste jpeg im aktuellen Verzeichnis öffnen?

10

3 Antworten auf die Frage

16
Nifle

ls -rt | tail -1

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

ls -rt | tail --lines=1

Noch besser ist "ls -t | head -1". Siehe meinen Kommentar unten. Andy Lester vor 13 Jahren 4
16
Andy Lester

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 haben möchten, das vorbeigescrollt wurde, und nicht das Erste. Im Falle, dass das Gerät es herausfindet, kann es auch headnach dem ersten verwendet und gestoppt werden, anstatt taildie Liste durchlaufen zu haben.

2
Gilles

Mit zsh:

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

Das Glob-Qualifikationsmerkmal (om)sortiert die Spiele nach zunehmendem Alter (dh in anti-chronologischer Reihenfolge). Das Glob-Qualifikationsmerkmal ([1])wählt nur das erste Spiel 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, wenn Sie nicht druckbare Zeichen oder Bytes in Ihren Dateinamen haben (was normalerweise der Fall ist, wenn Dateinamen in einem anderen Zeichensatz als Ihr Gebietsschema enthalten sind), lsdiese durch ersetzt werden ?, sodass dies nicht funktioniert.