← 全部文章

技术与生活 / 一篇记录

固定的 /tmp 文件名为什么不可靠

两个任务使用相同临时路径时,可能互相覆盖,也可能读到另一轮任务的残留。mktemp 创建的独立目录使输入、中间结果与输出更容易保持一一对应。

先明确这里的区别

固定文件名可能与并发任务冲突,随机临时路径能降低覆盖风险。

以下示例使用 Bash,请在独立测试目录中理解输入、输出和退出码。

work=$(mktemp -d); printf '%s\n' "$work"

怎样判断处理正确

连续运行两次,应得到两个不同目录。

并行启动两份实验,检查目录名称和文件内容是否独立。随机命名解决不了所有权限问题;任务目录仍应限制访问,并明确何时清理。

将一轮任务所有中间文件放在同一个临时目录,更容易检查所有权与清理范围。失败时可以按策略保留目录用于诊断,但应明确保留时间,防止临时数据无限积累。

需要留意的是,生成目录后仍需限制权限,并在任务结束时清理自己的目录。

参考:Shell 文档。

搜索文章

输入关键词,找回一篇记录。