it-swarm-vi.com

Làm thế nào để chỉ nhận các tệp được tạo sau một ngày với ls?

Với lệnh ls, có thể chỉ hiển thị các tệp được tạo sau một ngày, giờ cụ thể ...?

Tôi đang hỏi nó bởi vì tôi có một thư mục với hàng ngàn tệp.

Tôi muốn thấy tất cả các tập tin đã được tạo ra từ ngày hôm qua.

Tôi sử dụng ls -ltr nhưng tôi phải đợi để xem tất cả các tệp ...

Có tương đương với DIRECTORY/SINCE=date từ OpenVMS?

109
Luc M

Bạn có thể sử dụng lệnh find để tìm tất cả các tệp đã được sửa đổi sau một số ngày nhất định.

Ví dụ: để tìm tất cả các tệp trong thư mục hiện tại đã được sửa đổi từ hôm qua (24 giờ trước), hãy sử dụng:

find . -maxdepth 1 -mtime -1

Lưu ý rằng để tìm các tệp được sửa đổi trước 24 giờ trước, bạn phải sử dụng -mtime +1 thay vì -mtime -1.

132
dogbane
find . -type f -newermt '1/30/2017 0:00:00'

Điều này sẽ tìm thấy tất cả các tập tin sửa đổi sau một ngày cụ thể.

29
nullability
ls -ltr | grep "`date | awk '{print $2" "$3}'`"
1
Trant Batey

Hy vọng điều này hoạt động:

ls -ltr | awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $9}'

Đây:

$6 indicates position of month
$7 indicates day of the month

lệnh trên này in tất cả các tên tệp được tạo vào hoặc sau ngày 1 tháng 5 đến ngày 31 tháng 5

nếu bạn muốn in ngày cũng trên bảng điều khiển hãy thử điều này

ls -ltr | awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $6"-"$7,$9}'

Nếu bạn muốn chỉ định đường dẫn của thư mục, bạn có thể thử nó

ls -ltr <path>| awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $6"-"$7,$9}'
0
Rohit Nimmala