fsnotify
是一个用于监测Linux文件系统事件的库
首先,确保已经安装了 inotify-tools
。在Debian和Ubuntu上,可以使用以下命令安装:
sudo apt-get install inotify-tools
在CentOS和RHEL上,可以使用以下命令安装:
sudo yum install inotify-tools
安装完成后,可以使用 inotifywait
和 inotifywatch
命令来监测文件变化。
inotifywait
命令实时监测文件变化:inotifywait -m -r -e create -e modify -e delete /path/to/directory
参数说明:
-m
:监控模式,持续运行直到用户终止命令。-r
:递归监控子目录。-e
:指定要监控的事件类型,可以有多个,用空格分隔。这里我们监控创建、修改和删除事件。/path/to/directory
:要监控的目录路径。运行此命令后,你将在终端中看到实时更新的文件变化信息。
inotifywatch
命令定期监测文件变化:inotifywatch -m -r -e create -e modify -e delete --timefmt '%d/%m/%y %H:%M' --format '%T %w %e %f' /path/to/directory
参数说明:
-m
:监控模式,持续运行直到用户终止命令。-r
:递归监控子目录。-e
:指定要监控的事件类型,可以有多个,用空格分隔。这里我们监控创建、修改和删除事件。--timefmt
:时间格式,用于解析 inotifywait
输出的时间戳。--format
:输出格式,这里我们显示时间、监控的目录、事件类型和文件路径。/path/to/directory
:要监控的目录路径。运行此命令后,你将在终端中看到按时间顺序更新的文件变化信息。
注意:inotify
在Linux内核中的限制可能会导致性能问题,特别是在监控大量文件或频繁变化的目录时。在这种情况下,可以考虑使用其他工具,如 fswatch
(跨平台)或 kqueue
(macOS)。