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

31803
ajo

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

10

3 ответа на вопрос

16
Nifle

ls -rt | tail -1

Параметр -1говорит хвосту показывать только одну строку, если вы хотите быть более понятным, вместо этого вы можете использовать опцию long

ls -rt | tail --lines=1

Еще лучше "ls -t | head -1". Смотрите мой комментарий ниже. Andy Lester 14 лет назад 4
16
Andy Lester

То, что вы действительно хотите, это первый файл из списка, не обращенного по времени.

ls -t | head -1 

-R предназначен для людей, потому что мы хотим, чтобы на экране была прокручивалась последняя вещь, а не первая. В случае, если машина выяснит это, она может также использовать headи останавливаться после первого, а не tailпробежаться по списку.

2
Gilles

С зш:

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

Спецификатор glob (om)сортирует совпадения по возрасту (т.е. в антихронологическом порядке). Спецификатор glob ([1])выбирает только первое совпадение. Вы можете использовать, *.jpg(om[1,4])чтобы открыть 4 последних файла и так далее.

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

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

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

Похожие вопросы