1

我在 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 中的工作原理吗?

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

4

1 回答 1

1

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

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

于 2020-08-07T20:44:46.863 回答