inotify 似乎在其输出中的文件名中添加了一个 6 字母代码,在扩展名之前

inotify seems to add a 6 letter code to filenames in its output, before the extension

inotify 似乎在其输出文件名的扩展名之前添加了一个 6 字母代码。

例如: "/path/to/directory/ CLOSE_WRITE,CLOSE filename-HzdVai.lyx"

--format "%w%f":
/path/to/directory/filename-HzdVai.lyx

其他脚本没有发生这种情况,我找不到任何这方面的例子,也找不到谷歌搜索为什么会发生这种情况。

代码:

inotifywait -m -r -e close_write --exclude '[^l][^y][^x]$' ~/Routines/* ~/Projects/* | while read path msg name
do
    echo "$path $msg $name"
    lyx -e pdf "$path$name.lyx"
done

如果相关,我正在使用 Ubuntu 20.4.

脚本的目的是不断更新 LyX 匹配 pdf 文件的文档(LyX 是一个 LaTeX-based 文档处理器)所以每当我保存文档时它都会自动编译

@larks 猜对了,跟踪移动事件也表明 LyX 只是临时写入带有 id 的文件,然后重命名它。

最终的工作脚本:

#!/usr/bin/env sh

inotifywait -m -r -e moved_to --exclude '[^l][^y][^x]$' --format "%w%f" ~/Routines/* ~/Projects/* | while read file_path
do
    echo "$file_path"
    lyx -e pdf "$file_path"
done