first two results from ls command
I am using ls -l -t
to get a list of files in a directory ordered by time.
I would like to limit the search result to the top 2 files in the list.
Is this possible?
I've tried with grep and I struggled.
Solution 1:
You can pipe it into head
:
ls -l -t | head -3
Will give you top 3 lines (2 files and the total).
This will just give you the first 2 lines of files, skipping the size line:
ls -l -t | tail -n +2 | head -2
tail
strips the first line, then head
outputs the next 2 lines.
Solution 2:
To avoid dealing with the top output line you can reverse the sort and get the last two lines
ls -ltr | tail -2
This is pretty safe, but depending what you'll do with those two file entries after you find them, you should read Parsing ls on the problems with using ls
to get files and file information.
Solution 3:
Or you could try just this
ls -1 -t | head -2
The -1 switch skips the title line.
Solution 4:
You can use the head
command to grab only the first two lines of output:
ls -l -t | head -2