inotify
是 Linux 系统中的一个功能,用于监控文件系统事件,如文件或目录的创建、删除、修改等。要使用 inotify
监控文件夹变化,你可以使用 inotify-tools
这个命令行工具集,或者使用编程语言(如 Python)中的相关库。
以下是使用 inotify-tools
和 Python 的示例:
inotify-tools
。在大多数 Linux 发行版中,可以使用以下命令安装:sudo apt-get install inotify-tools # 对于基于 Debian 的系统(如 Ubuntu)
sudo yum install inotify-tools # 对于基于 RHEL 的系统(如 CentOS)
inotifywait
命令监控文件夹变化。以下是一个简单的示例,监控名为 test_folder
的文件夹,并在检测到事件时输出相关信息:inotifywait -m -r -e create,delete,modify --format '%w%f %e' test_folder
参数说明:
-m
:监控模式,持续监控文件夹变化。-r
:递归监控子目录。-e
:指定要监控的事件类型,如创建(create)、删除(delete)和修改(modify)。--format
:自定义输出格式,%w%f
表示文件路径,%e
表示事件类型。inotify
库:pip install inotify
import os
from inotify_simple import INotify, flags
# 监控的文件夹路径
folder_to_monitor = 'test_folder'
# 创建 INotify 实例
inotify = INotify()
# 添加监控规则
watch_flags = flags.CREATE | flags.DELETE | flags.MODIFY
wd = inotify.add_watch(folder_to_monitor, watch_flags)
try:
while True:
# 读取事件
for event in inotify.read():
file_path, event_mask = event.name, event.mask
# 根据事件类型输出相应信息
if event_mask & flags.CREATE:
print(f'文件创建: {file_path}')
elif event_mask & flags.DELETE:
print(f'文件删除: {file_path}')
elif event_mask & flags.MODIFY:
print(f'文件修改: {file_path}')
except KeyboardInterrupt:
# 移除监控规则并退出
inotify.rm_watch(wd)
这个脚本会持续监控 test_folder
文件夹,并在检测到创建、删除或修改事件时输出相应信息。