温馨提示×

inotify如何检测文件删除操作

小樊
49
2025-09-29 11:24:12
栏目: 编程语言

inotify 是 Linux 系统中用于监控文件系统事件的一种机制。要使用 inotify 检测文件删除操作,你需要关注 IN_DELETEIN_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 的一个简化版本。你也可以使用其他库,如 pyinotifyinotify-cpp,但基本概念和实现方法类似。

0