You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PopOS 22.04下inotifywait捕获.goutputstream-xxxx而非真实文件名求助

解决inotifywait监听Dropbox文件夹捕获临时文件名的问题

问题根源

.goutputstream-xxxx是GTK/GNOME系应用保存文件时生成的临时文件,写入完成后会重命名为真实文件名。Dropbox同步这类文件时,inotifywait的create事件会先触发临时文件的创建,只有后续的重命名事件才会对应真实文件名。

可行解决方法

1. 切换监听事件(最直接方案)

把监听的create事件换成moved_to,因为文件写入完成后会被移动(重命名)到目标目录,这个事件触发时拿到的就是真实文件名:

inotifywait -m -e moved_to --format %f /home/dave/Dropbox/Inbound |
while read -r filename; do
    # 此处编写你的文件处理逻辑
done

注意:--format %f仅输出文件名,因此read无需额外的event变量接收事件。

2. 兼容多场景的处理逻辑

如果需要覆盖直接创建文件的场景,可同时监听create、close_write和moved_to事件,过滤临时文件的干扰:

inotifywait -m -e create,close_write,moved_to --format "%e %f" /home/dave/Dropbox/Inbound |
while read -r event filename; do
    # 跳过临时文件的创建事件
    if [[ $event == "CREATE" && $filename == .goutputstream-* ]]; then
        continue
    fi
    # 处理真实文件的完成事件
    if [[ $event == "CLOSE_WRITE,CLOSE" || $event == "MOVED_TO" ]]; then
        # 替换为你的实际处理代码
        echo "开始处理文件:$filename"
    fi
done

3. 更新Dropbox客户端

旧版本Dropbox可能在同步临时文件时存在异常,先更新到最新版本尝试:

sudo apt update && sudo apt upgrade dropbox

内容的提问来源于stack exchange,提问作者DLMatthews

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:05:21