2012-05-09 3 views
28

Я использую ls -l -t, чтобы получить список файлов в каталоге, упорядоченном по времени.первые два результата от команды ls

Я хотел бы ограничить результаты поиска двумя верхними файлами в списке.
Возможно ли это?
Я пробовал с grep, и я боролся.

+0

и если я сейчас хочу открыть этот файл? – jntme

ответ

46

Вы можете по конвейеру в head:

ls -l -t | head -3 

Даст вам верхние 3 строки (2 файла и общее).

Это будет просто дать вам первые 2 строки файлов, пропуская строки размер:

ls -l -t | tail -n +2 | head -2 

tail полосы первой линии, затем head выводит следующие 2 строки.

1

Вы можете использовать команду head, чтобы захватить только первые две строки вывода:

ls -l -t | head -2 
+0

Это не даст вам 2 лучших файла, он предоставит размер листинга плюс первый файл, указанный в списке. – dag

0

Вы должны трубы через голову.

ls -l -t | head -n 3

выдаст два первых результата.

6

Чтобы избежать иметь дело с верхней строке вывода вы можете полностью изменить вид и получить последние две строки

ls -ltr | tail -2 

Это довольно безопасно, но в зависимости от того, что вы будете делать с этими двумя записями файлов после того, как вы найдете их, вы должны прочитать Parsing ls о проблемах с использованием ls, чтобы получить файлы и информацию о файлах.

0

Или вы могли бы попробовать именно этот

ls -1 -t | head -2 

-1 переключатель пропускает строки заголовка.

Смежные вопросы