zB Verzeichnis mit JPEG-Dateien: Wie kann man einfach nur das aktuellste JPEG im aktuellen Verzeichnis öffnen?
Antwort1
ls -rt | tail -1
Die -1
TellsSchwanzum nur eine Zeile anzuzeigen, wenn Sie es klarer haben möchten, können Sie stattdessen die Option „long“ verwenden
ls -rt | tail --lines=1
Antwort2
Was Sie wirklich wollen, ist die erste Datei einer nicht umgekehrten zeitbasierten Liste.
ls -t | head -1
Das -r ist für Menschen gedacht, weil wir das letzte Element auf dem Bildschirm sehen wollen, das vorbeigescrollt ist, und nicht das erste. Wenn die Maschine es herausfindet, kann sie es genauso gut verwenden head
und nach dem ersten Element anhalten, anstatt tail
die Liste durchzugehen.
Antwort3
Mit zsh:
gnome-open *.jpg(om[1])
Der Glob-Qualifizierer (om)
sortiert die Übereinstimmungen nach zunehmendem Alter (also in antichronologischer Reihenfolge). Der Glob-Qualifizierer wählt ([1])
nur die erste Übereinstimmung aus. Sie können beispielsweise verwenden, *.jpg(om[1,4])
um die 4 aktuellsten Dateien zu öffnen, und so weiter.
In anderen Shells:
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 Ihre Dateinamen einen anderen Zeichensatz als den in Ihrer Region verwendeten haben) ls
durch ersetzt werden und ?
daher nicht funktionieren.