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

问题描述

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。

解决方法

该脚本的目的是不断更新与pdf文件匹配的LyX个文档(基于LaTeX的文档处理器),因此每当我保存文档时,它都会自动编译

@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