ls -rt (Как вывести список только ПОСЛЕДНЕГО файла? например, для: | xargs gnome-open)

ls -rt (Как вывести список только ПОСЛЕДНЕГО файла? например, для: | xargs gnome-open)

например, каталог, содержащий файлы JPEG: как легко открыть только самый последний файл JPEG в текущем каталоге?

решение1

ls -rt | tail -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 ([1])выбирает только первое совпадение. Вы можете использовать *.jpg(om[1,4])для открытия 4 последних файлов и т.д.

В других оболочках:

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

но учтите, что если в именах файлов есть непечатаемые символы или байты (что обычно случается, если имена файлов имеют набор символов, отличный от вашего языка), то lsони будут заменены на ?, поэтому это не сработает.

Связанный контент