如何设置一个脚本,使用 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