Tôi biết ls -t
sẽ liệt kê tất cả các tập tin theo thời gian sửa đổi. Nhưng làm thế nào tôi có thể giới hạn các kết quả này chỉ trong n tệp cuối cùng ?
tharl
vì nó có xu hướng có mọi thứ tôi cần.
Tôi biết ls -t
sẽ liệt kê tất cả các tập tin theo thời gian sửa đổi. Nhưng làm thế nào tôi có thể giới hạn các kết quả này chỉ trong n tệp cuối cùng ?
tharl
vì nó có xu hướng có mọi thứ tôi cần.
Câu trả lời:
Hãy thử sử dụng đầu hoặc đuôi. Nếu bạn muốn 5 tệp được sửa đổi gần đây nhất:
ls -1t | head -5
-1 (đó là một) cho biết một tệp trên mỗi dòng và người đứng đầu cho biết có 5 mục đầu tiên.
Nếu bạn muốn thử 5 lần cuối
ls -1t | tail -5
ls
nhiều cột, nhưng đầu ra của ls
được dẫn theo lệnh với 1 tệp / dir tại một thời điểm
ls -1t | head -n 6 | tail -n 5
Câu trả lời được chấp nhận chỉ liệt kê tên tệp, nhưng để có được 5 tệp hàng đầu, người ta cũng có thể sử dụng:
ls -lht | head -6
Ở đâu:
-l
đầu ra ở định dạng danh sách
-h
làm cho đầu ra của con người có thể đọc được (tức là kích thước tệp xuất hiện trong kb, mb, v.v.)
-t
sắp xếp đầu ra bằng cách đặt tệp sửa đổi gần đây nhất trước
head -6
sẽ hiển thị 5 tệp vì ls
in kích thước khối trong dòng đầu ra đầu tiên.
Tôi nghĩ rằng đây là một cách tiếp cận thanh lịch hơn và có thể hữu ích hơn.
Ví dụ đầu ra:
total 26960312
-rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py
-rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf
-rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf
-rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf
-rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv
Theo mặc định, ls -t
sắp xếp đầu ra từ mới nhất đến cũ nhất, do đó, việc kết hợp các lệnh sẽ sử dụng tùy thuộc vào hướng bạn muốn đầu ra của mình được sắp xếp theo hướng nào.
Đối với 5 tệp mới nhất được sắp xếp từ mới nhất đến cũ nhất, hãy sử dụng head
để nhận 5 dòng đầu ra đầu tiên:
ls -t | head -n 5
Đối với 5 tệp mới nhất được sắp xếp từ cũ nhất đến mới nhất, hãy sử dụng công -r
tắc để đảo ngược ls
thứ tự sắp xếp và sử dụng tail
để lấy 5 dòng đầu ra cuối cùng:
ls -tr | tail -n 5
ls -t
liệt kê các tập tin theo thời gian tạo không phải là lần sửa đổi cuối cùng. Sử dụng ls -ltc
nếu bạn muốn liệt kê các tệp theo thời gian sửa đổi lần cuối từ cuối đến trước (từ trên xuống dưới). Do đó, để liệt kê n cuối cùng:ls -ltc | head ${n}
ls -lrt
có thể giúp ai đó.