如何设置一个脚本,使用 inotifywait 将所有修改过的文件和子文件夹从文件夹 A 复制到文件夹 B?

如何设置一个脚本,使用 inotifywait 将所有修改过的文件和子文件夹从文件夹 A 复制到文件夹 B?

如何设置一个脚本,使用 inotifywait 将所有修改过的文件和子文件夹从文件夹 A 复制到文件夹 B?

我有一个文件夹(A),里面有很多文件和子文件夹。

我想自动将最近创建或修改的文件和子文件夹复制到文件夹 (B)。不应复制较旧的文件。

我想使用 inotifywait 来监控文件夹 (A)。对于复制,也许可以使用 rsync 或类似工具。

剧本是什么样的?

维萨

答案1

使用-r选项来inotifywait监视所有子目录。-m无限运行,即在第一个事件之后不会停止监视。

对于rsync,使用-R相对路径名。目标路径后需要斜线,否则所有文件都会被复制到目标目录的根目录。

#! /bin/bash
source=/path/to/A
target=/path/to/B

inotifywait -m -r -e close_write -e moved_to "$source" \
| while read dir event file ; do
    rsync -R "$dir/$file" "$target"/
done

相关内容