Không có ý tưởng nào về giải pháp hệ vỏ, nhưng (giả sử Linux 1
) inotify
có thể là cách để ... xem ví dụ này bắt chướctail -F
(sử dụng pyinotify
), có thể nó có thể được sử dụng làm cơ sở để theo dõi toàn bộ thư mục .
Nói chung, inotify
có thể theo dõi các thư mục (trích dẫn man 7 inotify
)
Các bit sau có thể được chỉ định trong mặt nạ khi gọi inotify_add_watch (2) và có thể được trả về trong trường mặt nạ được trả về bởi read (2):
IN_ACCESS File was accessed (read) (*).
IN_ATTRIB Metadata changed, e.g., permissions, timestamps,
extended attributes, link count (since Linux 2.6.25),
UID, GID, etc. (*).
IN_CLOSE_WRITE File opened for writing was closed (*).
IN_CLOSE_NOWRITE File not opened for writing was closed (*).
IN_CREATE File/directory created in watched directory (*).
IN_DELETE File/directory deleted from watched directory (*).
IN_DELETE_SELF Watched file/directory was itself deleted.
IN_MODIFY File was modified (*).
IN_MOVE_SELF Watched file/directory was itself moved.
IN_MOVED_FROM File moved out of watched directory (*).
IN_MOVED_TO File moved into watched directory (*).
IN_OPEN File was opened (*).
Khi theo dõi một thư mục , các sự kiện được đánh dấu hoa thị (*) ở trên có thể xảy ra đối với các tệp trong thư mục, trong trường hợp đó, trường tên trong cấu trúc inotify_event được trả về sẽ xác định tên của tệp trong thư mục.
(... Và pyinotify
theo sát các tùy chọn luận án)
1
: BSD có một điều tương tự , kqueue
. Có lẽ một giải pháp đa nền tảng được sử dụng có thể đạt được GIO ( bindings Python ) là lớp trừu tượng vì nó có thể, bên cạnh inotify
, cũng sử dụngkqueue