Lưu ý: Điều này sẽ hoạt động cho GNU-find, nhưng không phải mọi tìm kiếm khác.
find . -maxdepth 1 -size +20M -printf "%T@ %f\n" |
sort -nr | head -n 20 | sed 's/[^ ]\+ //'
Bắt đầu như @Rajish, nhưng sử dụng printf
lệnh từ find
để chỉ định định dạng đầu ra. Có 3 định dạng liên quan đến thời gian, atime, ctime và mtime - %T
dành cho mtime %A
và %C
dành cho các định dạng khác.
@
là chỉ định khung thời gian tính bằng giây kể từ epoch. %f
dành cho tên tệp, \n
cho dòng mới giữa 2 tệp.
Sau đó, sắp xếp theo số theo thứ tự đảo ngược sẽ cho các tệp trẻ nhất trước tiên và chúng tôi thực hiện 20 dòng với head
.
Cuối cùng, sed
được sử dụng, để vứt bỏ thông tin thời gian.
¹) kể từ khi head
hoạt động theo từng dòng, một tệp có hơn 20 dòng mới trong tên, hơi bất thường, nhưng không bị cấm, có thể làm hỏng đầu ra nếu thuộc về 20 kết quả khớp đầu tiên. Nếu bạn tình cờ có những tập tin như vậy, vui lòng cố gắng loại bỏ chúng - tốt, để thay đổi tên của chúng. Chúng thường sẽ là một vấn đề cho các kịch bản đơn giản.
file
's-ls
lệnh, các ký tự đặc biệt sẽ được in như ký tự gạch chéo ngược thoát:find . -maxdepth 1 -size +20M -printf "%T@ " -ls | sort -nr | head -n 20 | sed 's/[^ ]\+ //'
. Ngoài ra, định dạng sẽ như thế nàols -l
, EoghanM cũng được chỉ định-l
.