Tìm một tập tin cũ 30 phút


12

Làm thế nào tôi có thể tìm thấy tập tin cũ 30 phút /bin/ksh?


4
Bạn có nghĩa là "nội dung của nó đã thay đổi 30 phút trước" hay "không tồn tại cho đến khi nó được tạo ra 30 phút trước"? Ngoài ra, bạn đang sử dụng hệ điều hành nào? Hệ điều hành khác nhau đi kèm với các phiên bản khác nhau của find.
Đánh dấu Plotnick

@ Mark Plotnick Tôi muốn tìm tệp có thời lượng 30 phút
Aravind

Tôi nghĩ rằng anh ấy / cô ấy có nghĩa là đã được tạo ra 30 phút trước . Như thể một người nào đó đã già X, anh ấy / cô ấy đã được sinh ra X thời gian trước.
erik

Câu trả lời:


15

Trên Linux, không có dấu vết về thời gian tạo tệp. Bạn chỉ có thể truy cập:

  • thời gian sửa đổi cuối cùng của nội dung (một sáng tạo được tính là một sửa đổi của khóa học) mtime,
  • thời gian truy cập cuối cùng atime,,
  • thời gian sửa đổi cuối cùng của siêu dữ liệu , ctime.

Nếu bạn muốn tìm kiếm các tệp có kiểm tra dựa trên những thời điểm này, find( man find) có thể giúp bạn.

Bạn sẽ sử dụng nó theo cách này để tìm một tệp được truy cập chính xác 30 phút trước trong thư mục hiện tại của bạn và các thư mục con của nó:

find -amin 30

Thông thường, bạn sẽ muốn sử dụng một khoảng vì có thể khó đưa ra số phút chính xác:

find -amin +25 -amin -35

Điều này sẽ tìm thấy các tệp được truy cập hơn 25 nhưng ít hơn 35 phút trước.

Và nếu bạn chỉ quan tâm đến thời gian sửa đổi và không có thời gian truy cập (tức là đọc), hãy thay thế -aminbằng -mmin.


bạn không muốn atime. atime là thời gian truy cập.
ctrl-alt-delor

@richard OP không nói rõ ý của anh ấy là gì ... Dù sao tôi cũng đưa ra mtimecâu trả lời
lgeorget

1
@ lgeorget khi tôi sử dụng -mtime 30nó đã hiển thị các tập tin 30 ngày tuổi.
Aravind

@ user2910201 Ups ngu ngốc. Xtimetùy chọn là cho ngày và Xmintùy chọn cho phút. Xấu quá, tôi chỉnh sửa câu trả lời
lgeorget 19/07/14

2
@ user2910201 nhưng lưu ý rằng bạn có thể sử dụng Xtimevới bất kỳ đơn vị thời gian hợp lý nào như 30mtrong ba mươi phút hoặc 5dtrong năm ngày
lgeorget

3

Bạn có thể sử dụng mtimeđể làm như vậy:

find . -mmin 30    #exactly 30 minutes old

điều này sẽ cho bạn biết các tập tin đã createdhoặc modified30 phút trở lại
g4ur4v

@ g4ur4v khi tôi sử dụng -mminnó đang hiển thị -mminkhông phải là một tùy chọn hợp lệ
Aravind

Hãy thử điều này:find /path -mtime +30m
ryekayo

Không chắc tại sao nó không nhận ra -mmin, tôi đã tra cứu nhiều ví dụ bằng cách sử dụng lệnh đó ..
ryekayo

3

Không có GNU/BSD find

TZ=ZZZ0 touch -t "$(TZ=ZZZ0:30 date +%Y%m%d%H%M.%S)" /reference/file

và sau đó find . -newer /reference/file

giải pháp được đưa ra bởi Stéphane Chazelas

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.