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文档(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