尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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 系统中可用但某些旧版本或嵌入式系统可能不支持所有选项。建议在关键脚本中测试其可用性。
RELATED

相关推荐

基于MA12070与STM32F429ZI的高保真音频系统设计

基于MA12070与STM32F429ZI的高保真音频系统设计

1. 项目概述:构建基于MA12070与STM32F429ZI的高保真音频系统在嵌入式音频领域,如何平衡音质、功耗与系统复杂度一直是工程师面临的挑战。本次项目采用英飞凌MA12070 D类音频放大器与STM32F429ZI微控制器组合,打造一套支持高解析度音频处理的嵌…

📅 2026/9/8 17:58:15
双节锂离子电池主动均衡方案设计与实现

双节锂离子电池主动均衡方案设计与实现

1. 项目背景与核心需求在便携式电子设备和储能系统中,双节锂离子电池串联方案因其更高的输出电压(7.4V标称)而广泛应用。但串联电池组的核心痛点在于——由于制造工艺差异和使用环境不同,单体电池间必然存在容量和电压偏差。这种不…

📅 2026/9/17 16:02:47
Kokoro:本地、CPU 友好,实现多语言高质量文本转语音!

Kokoro:本地、CPU 友好,实现多语言高质量文本转语音!

本地高质量 TTS 成现实就在几年前,实现逼真的本地语音合成似乎还是天方夜谭。如今,其质量已十分出色,而且关键的是,在实现这一效果的同时还能保障隐私。运行情况与使用模型上面的视频展示了根据示例文本生成的音频,该音…

📅 2026/10/10 12:37:13
MORE NEWS

更多资讯

📰

Superpowers技能框架:提升Claude Code与Codex CLI的AI编程稳定性

1. 从"superpowers"这个词说起:它到底指什么第一次看到"superpowers"这个词,很多人会以为是某个超级英雄题材的游戏或者影视项目。但在开发者圈子里,尤其是近一年围绕 AI 编程助手生态的讨论中,superpowers 指…

📰

Superpowers 框架:为 Claude Code 与 Codex CLI 构建可复用 AI 编程技能体系

1. 这套东西到底在解决什么问题第一次听到 "superpowers" 这个名字,很多人会以为是某个新出的编辑器插件或者某个大模型的代号。其实都不是。它是一套围绕 AI 编程助手构建的agentic skills framework,翻译成人话就是"给 AI 编程助手装上…

📰

Axure Bridge Chrome插件安装与排错全指南

简介:这是一款专为Axure RP原型设计师与前端协作人员打造的Chrome浏览器扩展工具,解决网页设计过程中元素测量、截图标注、原型比对等高频需求,显著提升从浏览到设计的闭环效率。资源包共8个文件,含2个核心JS脚本(实现…

📰

RTK Query日志精简:3个钩子将500行测试输出压缩为LLM友好摘要

1. 项目概述:为什么500行测试输出是LLM的“隐形内存泄漏”你有没有遇到过这种场景:写完一个前端功能,跑单元测试时控制台哗啦啦刷出500行JSON响应体,然后顺手把这段超长日志复制进ChatGPT,想让它帮你分析“为什么这个u…

📰

superpowers 框架实战:AI 编程助手能力增强与 Java 落地指南

1. 从“超能力”到工程实践:superpowers 到底是个什么东西 第一次看到 superpowers 这个词,很多人脑子里蹦出来的可能是漫威电影里的超能力,或者某个游戏里的技能系统。但在开发者圈子里,尤其是最近一段时间频繁出现在各类技术社…

📰

无刷电机AX/BY/CZ绕组命名与120度电角度解析

1. 一句话讲清楚:AX/BY/CZ到底在说什么先把结论放前面:直流无刷电机里常说的“AX/BY/CZ”,本质上不是三条互相垂直的轴线,而是三组绕组的编号方式。A、B、C代表三相,X、Y、Z代表对应的绕组末端。所谓“怎么划分”&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬