Tidak tahu tentang solusi shell, tetapi (dengan asumsi Linux 1
) inotify
bisa menjadi cara untuk pergi ... lihat contoh ini menirutail -F
(menggunakan pyinotify
), mungkin itu dapat digunakan sebagai dasar untuk mengikuti seluruh direktori .
Secara umum, inotify
dapat memonitor direktori (mengutip man 7 inotify
)
Bit-bit berikut ini dapat ditentukan dalam mask saat memanggil inotify_add_watch (2) dan dapat dikembalikan dalam bidang mask yang dikembalikan oleh baca (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 (*).
Saat memantau direktori , peristiwa yang ditandai dengan tanda bintang (*) di atas dapat terjadi untuk file dalam direktori, dalam hal ini bidang nama dalam struktur inotify_event yang dikembalikan mengidentifikasi nama file dalam direktori.
(... dan pyinotify
ikuti dengan cermat opsi-opsi tesis ini)
1
: BSD memiliki hal serupa kqueue
,. Mungkin solusi lintas-platform dapat dicapai dengan menggunakan GIO ( Python bindings ) sebagai lapisan abstraksi karena dapat, di samping inotify
, juga menggunakankqueue