2012-05-09 35 views
28

Tôi đang sử dụng ls -l -t để nhận danh sách tệp trong thư mục được sắp xếp theo thời gian.hai kết quả đầu tiên từ lệnh ls

Tôi muốn giới hạn kết quả tìm kiếm ở 2 tệp hàng đầu trong danh sách.
Điều này có khả thi không?
Tôi đã thử với grep và tôi gặp khó khăn.

+0

và nếu bây giờ tôi muốn mở một tệp đó? – jntme

Trả lời

46

Bạn có thể đường ống nó vào head:

ls -l -t | head -3 

sẽ cung cấp cho bạn top 3 dòng (2 tập tin và tổng số).

này sẽ chỉ cung cấp cho bạn 2 dòng đầu tiên của file, bỏ qua dòng kích thước:

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

tail dải dòng đầu tiên, sau đó head kết quả đầu ra 2 dòng tiếp theo.

1

Bạn có thể sử dụng lệnh head để lấy chỉ có hai dòng đầu tiên của kết quả:

ls -l -t | head -2 
+0

Điều này sẽ không cung cấp cho bạn 2 tệp hàng đầu, nó sẽ cung cấp kích thước của danh sách cộng với tệp đầu tiên được liệt kê. – dag

0

Bạn phải ống qua đầu.

ls -l -t | head -n 3

sẽ xuất hai kết quả đầu tiên.

6

Để tránh đối phó với dòng sản lượng cao nhất bạn có thể đảo ngược các loại và nhận được hai dòng cuối cùng

ls -ltr | tail -2 

này là khá an toàn, nhưng tùy thuộc những gì bạn sẽ làm gì với những hai mục tập tin sau khi bạn tìm chúng, bạn nên đọc Parsing ls về các sự cố khi sử dụng ls để nhận tệp và thông tin tệp.

0

Hoặc bạn có thể thử chỉ này

ls -1 -t | head -2 

Các -1 switch bỏ qua dòng tiêu đề.

Các vấn đề liên quan