Linux 脚本安全必备:mktemp 命令详解,安全创建临时文件 / 目录
一、命令简介mktemp 命令用于在 Linux/Unix 系统中安全地创建临时文件或目录。它通过生成一个唯一的文件名避免命名冲突并确保临时文件的安全性和可预测性。该命令特别适用于 shell 脚本中需要临时存储数据的场景如中间文件处理、缓存数据等。二、语法格式bash运行mktemp [选项] [模板]参数说明模板可选参数用于指定临时文件名的生成规则。模板必须以至少三个连续的 X 结尾例如 tmp.XXXXXX这些 X 会被随机字符替换确保文件名唯一。如果未提供模板则默认使用 /tmp/tmp.XXXXXX。三、常用选项及说明表格选项说明-d创建一个临时目录而非文件。-q静默模式。执行时若发生错误不显示任何错误信息。-u仅生成临时文件名而不实际创建文件或目录。通常用于测试或预生成名称。-p 目录指定临时文件或目录的创建路径。默认路径为 $TMPDIR 环境变量指定的目录若未设置则使用 /tmp。-t已弃用。早期版本中用于指定前缀现在建议直接使用模板参数。四、示例用法示例 1创建默认临时文件bash运行# 在默认临时目录如 /tmp中创建一个临时文件 mktemp输出示例plaintext/tmp/tmp.abc123示例 2使用自定义模板创建临时文件bash运行# 在当前目录创建以 mydata. 开头的临时文件 mktemp mydata.XXXXXX输出示例plaintextmydata.xyz789示例 3创建临时目录bash运行# 创建一个临时目录 mktemp -d输出示例plaintext/tmp/tmp.dir456示例 4静默模式处理错误bash运行# 如果创建失败如权限不足不显示错误信息 mktemp -q /non/existent/path.XXXXXX示例 5仅生成临时文件名而不创建文件bash运行# 生成一个临时文件名但不实际创建文件 mktemp -u tmp.XXXXXX输出示例plaintexttmp.def012文件未创建示例 6在指定目录创建临时文件bash运行# 在 /var/tmp 目录中创建临时文件 mktemp -p /var/tmp script.XXXXXX输出示例plaintext/var/tmp/script.ghi345示例 7在 Shell 脚本中使用临时文件bash运行#!/bin/bash # 创建临时文件并保存路径 TMPFILE(mktemp/tmp/backup.XXXXXX) echo临时文件已创建:TMPFILE # 使用临时文件进行操作 echo 一些数据 TMPFILE catTMPFILE # 脚本结束时清理临时文件 rm $TMPFILE五、注意事项安全性mktemp 通过生成唯一文件名避免竞态条件建议始终使用它来创建临时文件而不是手动构造文件名如 touch /tmp/myfile。模板要求如果提供自定义模板必须包含至少三个连续的 X 作为后缀否则 mktemp 会报错。环境变量TMPDIR 环境变量可以更改默认临时目录。例如bash运行export TMPDIR/my/temp mktemp清理临时文件脚本中创建的临时文件或目录应在使用后及时清理避免占用磁盘空间。可以使用 trap 命令确保脚本退出时自动清理bash运行trap rm -f $TMPFILE EXIT权限问题确保运行 mktemp 的用户对目标目录有写权限否则创建会失败。可移植性mktemp 在大多数 Linux 和 Unix 系统中可用但某些旧版本或嵌入式系统可能不支持所有选项。建议在关键脚本中测试其可用性。

相关新闻

用 curl 复现豆包调用 Seedance 视频生成的真实请求链路

用 curl 复现豆包调用 Seedance 视频生成的真实请求链路

1. 项目概述:用 curl 直接调用 doubao seedance 视频生成服务,不是“调 API”,而是“复现官方调用链”你搜到的“doubao -seedance视频生成api调用”,本质上是个典型的信息错位型热搜词——它把三个不同层级的东西混在了一起&…

2026/7/9 18:43:53阅读更多 →
PCIe 6.0 连接器选型指南:Amphenol MCIO 与 CEM 规格的 3 个关键考量

PCIe 6.0 连接器选型指南:Amphenol MCIO 与 CEM 规格的 3 个关键考量

PCIe 6.0连接器选型实战:从信号完整性到系统集成的深度解析在数据中心和AI基础设施的爆炸式增长背景下,PCIe 6.0作为新一代高速互连标准正在重塑硬件架构设计。面对64GT/s的超高传输速率,连接器选型已从简单的机械接口选择演变为涉及信号完整…

2026/7/9 18:43:53阅读更多 →
STM32F415ZG与A3910电机驱动在嵌入式开发中的实战应用

STM32F415ZG与A3910电机驱动在嵌入式开发中的实战应用

1. 认识我们的硬件搭档:A3910与STM32F415ZG在嵌入式开发领域,选择合适的硬件组合往往决定了项目的成败。今天我要分享的是A3910电机驱动芯片与STM32F415ZG微控制器的黄金组合。这个搭配在我最近完成的工业自动化项目中表现惊艳,让我忍不住想和…

2026/7/9 18:43:53阅读更多 →
微软推出Frontier Company,押注企业AI落地工程

微软推出Frontier Company,押注企业AI落地工程

微软推出 Microsoft Frontier Company,目标是帮助企业把 AI 从试点项目推进到可衡量的业务落地。公开报道称,该项目投入约 25 亿美元,并配置 6000 名驻场工程师和行业专家。 这类模式接近“Forward Deployed Engineer”服务,但微…

2026/7/9 19:59:27阅读更多 →
Trae人机协同Docker部署:Ubuntu+Docker+AI协作实践指南

Trae人机协同Docker部署:Ubuntu+Docker+AI协作实践指南

1. 项目概述:这不是一次普通部署,而是与 Trae 协同工作的全新协作范式“跟 Trae 合作完成项目的docker 部署”——这个标题乍看像一句工作日志,但拆开来看,它其实精准锚定了当前开发者工具链演进中一个极具代表性的切口&#xff1…

2026/7/9 19:59:27阅读更多 →
百度网盘提取码自动获取:3分钟快速解锁加密资源的终极指南

百度网盘提取码自动获取:3分钟快速解锁加密资源的终极指南

百度网盘提取码自动获取:3分钟快速解锁加密资源的终极指南 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘上那些需要提取码的资源而烦恼…

2026/7/9 19:59:27阅读更多 →
为什么哔哩下载姬是B站视频下载的终极解决方案?

为什么哔哩下载姬是B站视频下载的终极解决方案?

为什么哔哩下载姬是B站视频下载的终极解决方案? 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)…

2026/7/9 19:59:27阅读更多 →
如何快速获取百度网盘提取码:baidupankey智能查询工具完整指南

如何快速获取百度网盘提取码:baidupankey智能查询工具完整指南

如何快速获取百度网盘提取码:baidupankey智能查询工具完整指南 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 百度网盘提取码智能获取工具baidupankey是…

2026/7/9 19:59:27阅读更多 →
NVIDIA Profile Inspector深度解析:显卡性能调优的底层机制与实践方案

NVIDIA Profile Inspector深度解析:显卡性能调优的底层机制与实践方案

NVIDIA Profile Inspector深度解析:显卡性能调优的底层机制与实践方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector作为一款开源显卡配置工具,突破了…

2026/7/9 19:54:26阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/9 5:56:19阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/9 9:45:20阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/9 2:47:07阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M…

2026/7/9 0:04:37阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/9 9:45:20阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/9 15:50:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/9 14:14:17阅读更多 →