无法弄清楚 inotifywait 排除是如何工作的,有人可以解释一下吗?

Can't figure out how inotifywait excluding works, can somebody explain?

我在 bash

中有以下代码
inotifywait -r -m -e modify -e moved_to -e moved_from -e move -e move_self -e create -e delete -e delete_self $list_of_folders |
    while read path action file; do
        message=$myip%0A$action%0A$path$file
        message
    done

我不知道如何从名为“logs.txt”和“.git”文件夹的监视文件中排除,谁能解释 inotifywait 中排除的工作原理?

p.s。 logs.txt 和 .git 文件夹,可能在任何位置,我不知道具体在哪里

根据 John1024 的评论,我相信您需要像这样在 inotifywait 命令中使用 --exclude 'logs\.txt|\.git'

inotifywait --exclude 'logs\.txt|\.git' -r -m -e modify -e moved_to -e moved_from -e move -e move_self -e create -e delete -e delete_self $list_of_folders | # ...

此选项采用正则表达式,用于忽略文件名与其匹配的事件。在这种情况下,正则表达式 logs\.txt|\.git 表示任何等于 logs.txt 或 (|) .git 的文件名。需要反斜杠来转义点,因为它们在正则表达式中具有特殊含义。

此排除似乎适用于 logs.txt 文件或 .git 目录的任何位置。它甚至排除了 .git 目录后代的事件。