inotify 是 Linux 系统中的一个功能,它可以监控文件系统事件,如文件的创建、修改、删除等。在脚本编写中,我们可以使用 inotifywait 命令(来自 inotify-tools 包)来实现这些功能。
以下是一个简单的示例,展示了如何在脚本中使用 inotifywait 监控一个目录,并在检测到文件创建事件时执行一些操作:
#!/bin/bash
# 监控的目录
watch_directory="/path/to/your/directory"
# 使用 inotifywait 监控目录
inotifywait -m -e create --format '%w%f' "${watch_directory}" | while read FILE
do
# 当检测到文件创建事件时,执行这里的命令
echo "New file created: ${FILE}"
# 例如,你可以在这里添加其他操作,如重命名文件、移动文件等
# mv "${FILE}" "/path/to/your/target/directory"
done
在这个示例中,我们首先定义了一个变量 watch_directory,用于存储要监控的目录。然后,我们使用 inotifywait 命令监控该目录,并设置 -m 选项使其持续运行,-e create 选项表示我们只关心文件创建事件,--format '%w%f' 选项用于指定输出格式,这里我们输出文件的完整路径。
接下来,我们使用管道 | 将 inotifywait 的输出传递给一个 while 循环。在循环中,我们可以对每个检测到的文件创建事件执行相应的操作。在这个示例中,我们只是简单地打印出新创建的文件路径,但你可以根据需要添加其他操作。
要运行此脚本,请将其保存为一个 .sh 文件(如 inotify_example.sh),并确保它具有可执行权限(使用 chmod +x inotify_example.sh)。然后,在终端中运行脚本(如 ./inotify_example.sh)。