Tôi đang sử dụng inotifywait
để theo dõi các sự kiện trên một tệp (thay vì một thư mục), như
$ inotifywait -m -e mở -e đóng -e di chuyển myfile.txt
Khi tôi mở và chỉnh sửa tệp, nhật ký được in như mong đợi.
Thiết lập đồng hồ.
Đồng hồ được thành lập.
myfile.txt MỞ
myfile.txt CLOSE_NOWRITE,CLOSE
Nhưng inotify cũng không bao giờ phát ra MOVED_IN
, CHUYỂN TỪ
sự kiện (thậm chí không DELETE_SELF
) khi tôi đổi tên tệp. Mặt khác, nếu tôi xem danh mục có chứa myfile.txt
, thay vì một tệp duy nhất, các sự kiện được phát ra như bình thường.
Một điểm kỳ lạ đối với tôi là, mở và đóng tệp đã đổi tên vẫn ghi lại các sự kiện.
myfile.txt MỞ
myfile.txt CLOSE_NOWRITE,CLOSE
Tại thời điểm này, tập tin của tôi không phải là myfile.txt
nhưng có tên khác. Đáng chú ý, inotify không theo dõi bất kỳ sự kiện nào được gợi lên khi làm việc với một sự kiện mới được tạo myfile.txt
.
Câu hỏi của tôi là:
Làm cách nào tôi có thể theo dõi chính xác các sự kiện "đổi tên" của một tệp với inotifywait
, trong khi không xem toàn bộ thư mục?
Làm cách nào tôi có thể lấy tên hiện tại của một tệp đã xem? --định dạng "%f"
tùy chọn dường như luôn in tên tệp gốc được chuyển đến inotifywait
ngay cả khi tệp được đổi tên, như được hiển thị ở trên.
Tôi đang tìm một loại "trình ghi nhật ký lịch sử đổi tên" hoạt động cho một tập hợp tệp nhất định nằm rải rác trong hệ thống tệp. Có bất kỳ lựa chọn thay thế nào để inotify, có thể được sử dụng cho mục đích cụ thể này không?