无法弄清楚 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
目录后代的事件。
我在 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
目录后代的事件。