inotify 是 Linux 系统中用于监控文件系统事件的一种机制。要使用 inotify 检测文件删除操作,你需要关注 IN_DELETE 和 IN_DELETE_SELF 这两个事件。
以下是一个简单的 Python 示例,使用 inotify 库来检测文件删除操作:
首先,确保已经安装了 inotify 库。如果没有安装,可以使用以下命令安装:
pip install inotify
然后,创建一个名为 inotify_example.py 的 Python 文件,并添加以下代码:
import os
import sys
from inotify_simple import INotify, flags
def main():
# 监控的目录
path_to_watch = "/path/to/your/directory"
# 创建 INotify 实例
inotify = INotify()
# 添加监控规则
watch_flags = flags.CREATE | flags.DELETE | flags.DELETE_SELF | flags.MOVED_FROM
wd = inotify.add_watch(path_to_watch, watch_flags)
try:
while True:
# 读取事件
for event in inotify.read():
if event.mask & flags.DELETE_SELF:
print(f"文件 {event.name} 被删除")
elif event.mask & flags.DELETE:
print(f"文件 {event.name} 被删除(其他进程)")
except KeyboardInterrupt:
# 移除监控规则并退出
inotify.rm_watch(wd)
sys.exit(0)
if __name__ == "__main__":
main()
将 /path/to/your/directory 替换为你想要监控的目录路径。运行此脚本后,当有文件被删除时,它将输出相应的消息。
注意:这个示例使用了 inotify-simple 库,它是 inotify 的一个简化版本。你也可以使用其他库,如 pyinotify 或 inotify-cpp,但基本概念和实现方法类似。