Sự kết hợp của find
và ls
hoạt động tốt cho
- tên tập tin mà không cần newlines
lượng
- không phải là rất lớn các tập tin tên tập tin
- không phải là rất dài
Giải pháp:
find . -name "my-pattern" ... -print |
xargs -0 ls -1 -t |
head -1
Hãy phá vỡ nó xuống:
Với find
chúng ta có thể phù hợp với tất cả các file thú vị như thế này:
find . -name "my-pattern" ...
sau đó sử dụng -print0
chúng ta có thể vượt qua tất cả tên tập tin một cách an toàn để các ls
như thế này:
find . -name "my-pattern" ... -print0 | xargs -0 ls -1 -t
ls -t
sẽ sắp xếp tệp bằng cách sửa đổi thời gian (mới nhất đầu tiên) và in nó tại một dòng. Bạn có thể sử dụng -c
để sắp xếp theo thời gian tạo. Lưu ý: điều này sẽ vi phạm với tên tệp có chứa dòng mới.
Cuối cùng head -1
cho chúng tôi tệp đầu tiên trong danh sách được sắp xếp.
Lưu ý:xargs
sử dụng giới hạn hệ thống đối với kích thước của danh sách đối số. Nếu kích thước này vượt quá, xargs
sẽ gọi ls
nhiều lần. Điều này sẽ phá vỡ phân loại và có lẽ cũng là kết quả cuối cùng. Chạy
xargs --show-limits
để kiểm tra giới hạn trên hệ thống của bạn.
Nguồn
2017-11-23 09:43:15
xem http://superuser.com/questions/294161/unix-linux-find-and-sort-by-date-modified để có thêm gợi ý câu trả lời. Việc phân loại là bước quan trọng để lấy tập tin mới nhất của bạn –