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
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