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

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

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

Antwort1

ls -rt | tail -1

Die -1TellsSchwanzum 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 headund nach dem ersten Element anhalten, anstatt taildie 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) lsdurch ersetzt werden und ?daher nicht funktionieren.

verwandte Informationen