我有这个命令,它显示了具体目录(不包括某些路径)下的文件被修改的情况:
inotifywait -m -q -r --format '%T % e %w%f' --excludei '/trash/' --timefmt '%d/%m/%Y-%H:%M:%S%z' /my/monitored/folder
有没有办法将此(或类似)命令与 结合起来tail
,以便我可以检索每个修改文件的最后一行?重要的是,此组合输出文件的路径和添加的最后一行。
答案1
在你的问题中,你说你想扫描文件是否已被修改的,但在您的命令中没有指定事件。
所以我的答案将使用该modify
事件:
inotifywait -m -q -r \
--format '%T % e %w%f' \
--excludei '/trash/' \
--timefmt '%d/%m/%Y-%H:%M:%S%z' /my/monitored/folder | \
while IFS=' ' read -r time event file; do
echo "file: $file"
echo "modified: $time"
last_line=$(tail -1 "$file")
echo "last line: $last_line"
echo
done
它将输出类似这样的内容:
file: /path/file.txt
modified: 17/02/2021-09:17:02-0300
last line: foo