Tìm các tệp đã được thay đổi trong 24 giờ qua


265

Ví dụ, một máy chủ MySQL đang chạy trên máy Ubuntu của tôi. Một số dữ liệu đã được thay đổi trong 24 giờ qua.

Tập lệnh (Linux) nào có thể tìm thấy các tệp đã được thay đổi trong 24 giờ qua?

Vui lòng liệt kê tên tệp, kích thước tệp và thời gian sửa đổi.


1
Bạn có thể sử dụng stackoverflow.com/questions/4561895/ Lời
vaugham

Câu trả lời:


479

Để tìm tất cả các tệp được sửa đổi trong 24 giờ qua (cả ngày cuối cùng) trong một thư mục cụ thể và các thư mục con của nó:

find /directory_path -mtime -1 -ls

Nên theo ý thích của bạn

Các -trước 1là rất quan trọng - nó có nghĩa là bất cứ điều gì thay đổi một ngày hoặc ít hơn trước. Một +trước 1sẽ bất cứ điều gì thay vì trung bình thay đổi ít nhất một ngày trước, trong khi có không có gì trước khi 1sẽ có nghĩa là nó đã được thay đổi bắt ông phải trả một ngày trước, không hơn, không kém.


17
đẹp! 2 giờ qua thì sao?
JackWM

114
sử dụng "-mmin -120" thay vì mtime
Xavjer

1
Tại sao -trước giá trị số?
EsseTi

6
Đối số đến -mtime được hiểu là số ngày trong độ tuổi của tệp. -mtime + n có nghĩa là hoàn toàn lớn hơn, -mtime -n có nghĩa là hoàn toàn ít hơn.
Xavjer

3
Để người đọc: đừng quên để loại bỏ các -lskhi sử dụng trong một kịch bản
hương thơm

41

Bạn có thể làm điều đó với

find . -mtime 0

Từ man find:

[Thời gian] kể từ khi mỗi tệp được sửa đổi lần cuối được chia cho 24 giờ và mọi phần còn lại sẽ bị loại bỏ. Điều đó có nghĩa là để khớp với -mtime 0, một tệp sẽ phải có một sửa đổi trong quá khứ ít hơn 24 giờ trước.


25

Một cách khác, nhân văn hơn:

find /<directory> -newermt "-24 hours" -ls

hoặc là:

find /<directory> -newermt "1 day ago" -ls

hoặc là:

find /<directory> -newermt "yesterday" -ls

11

Trên các hệ thống tương thích GNU (ví dụ Linux):

find . -mtime 0 -printf '%T+\t%s\t%p\n' 2>/dev/null | sort -r | more

Điều này sẽ liệt kê các tệp và thư mục đã được sửa đổi trong 24 giờ qua ( -mtime 0). Nó sẽ liệt kê chúng với thời gian được sửa đổi lần cuối theo định dạng vừa có thể sắp xếp vừa có thể đọc được ( %T+), theo sau là kích thước tệp ( %s), theo sau là tên tệp đầy đủ ( %p), mỗi tệp được phân tách bằng các tab ( \t).

2>/dev/nullvứt bỏ mọi đầu ra stderr, để các thông báo lỗi không làm vấy bẩn vùng biển; sort -rsắp xếp các kết quả bằng cách sửa đổi gần đây nhất trước; và | moreliệt kê một trang kết quả tại một thời điểm.


2
Bạn cũng có thể sử dụng | lessthay vì | more, tôi cho rằng.
Stephen G Tuggy 7/12/2016

7

Đối với những người khác đến đây trong tương lai (bao gồm cả tôi), hãy thêm tùy chọn -name để tìm các loại tệp cụ thể, ví dụ: find /var -name "*.php" -mtime -1 -ls


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.