ls -rt (最後のファイルだけをリストするにはどうすればいいでしょうか? 例: | xargs gnome-open)

ls -rt (最後のファイルだけをリストするにはどうすればいいでしょうか? 例: | xargs gnome-open)

たとえば、jpeg ファイルを含むディレクトリの場合、現在のディレクトリにある最新の jpeg だけを簡単に開くにはどうすればよいでしょうか。

答え1

ls -rt | tail -1

物語 -1しっぽ1行だけ表示したい場合は、代わりに長いオプションを使用できます。

ls -rt | tail --lines=1

答え2

本当に必要なのは、逆転されていない時間ベースのリストの最初のファイルです。

ls -t | head -1

-r は人間用です。人間は画面上で最初にスクロールしたものよりも最後にスクロールしたものを求めているからです。マシンがこれを理解する場合は、リスト全体を実行するheadよりも、最初のものを使用して停止する方がよいでしょうtail

答え3

zshの場合:

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

glob 修飾子は(om)、一致を年齢の昇順 (つまり、反年代順) で並べ替えます。glob 修飾子は最初の一致のみを選択します。最新の 4 つのファイルを開くなど、([1])を使用できます。*.jpg(om[1,4])

他のシェルの場合:

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

ただし、ファイル名に印刷できない文字やバイトが含まれている場合 (通常、ファイル名がロケールと異なる文字セットである場合に発生します)、lsそれらは に置き換えられるため?、これは機能しないことに注意してください。

関連情報