尧图网络 高端网站定制 · 原创设计
免费咨询热线
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/8/24 22:40:40
双节锂离子电池主动均衡方案设计与实现

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

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

📅 2026/8/23 22:46:33
Kokoro:本地、CPU 友好,实现多语言高质量文本转语音!

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

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

📅 2026/8/22 13:56:23
MORE NEWS

更多资讯

📰

Windows下QT与SOEM实现EtherCAT IO模块控制实战

简介:这是一份面向Windows平台EtherCAT主站开发者的SOEM源码资源包,适用于在Win10/Win11系统下基于QT环境搭建EtherCAT主站、完成从站IO模块输入状态显示与输出控制的工程实践。资源所属的SOEM专栏与配套博客、视频教程已提供完整说明,适合正…

📰

Get Shit Done 的 `/gsd:help` 分层帮助体系:从一行提示到全量命令参考的渐进式披露设计

Get Shit Done 的 /gsd:help 分层帮助体系:从一行提示到全量命令参考的渐进式披露设计 【免费下载链接】get-shit-done A light-weight and powerful meta-prompting, context engineering and spec-driven development system for Claude Code by TCHES. 项目地址…

📰

GitNexus架构解析:面向AI Agent的快照与智能回滚机制

GitNexus这名字,最近在善用AI写代码的圈子里热度极高,GitHub上4.6万星,我研究完它的架构后直接动手接进了团队工作流。这事还得从一次事故说起:我们用AI Agent重构登录模块,它一口气改了41个文件,本地编译通…

📰

图论算法代码模板全解析:从存储结构到Dijkstra与拓扑排序

1. 从零开始:图论代码的学习路径与代码能力定位如果说图论是算法竞赛和工程开发里最“成体系”的一块知识,那图论的代码实现就是检验你是否真正理解这块体系的试金石。我见过太多人把图论的概念背得滚瓜烂熟,什么最短路径、最小生成树、拓扑排…

📰

基于 Rubric 的 Anthropic Cookbook Notebook 审计技能全解:工作流、评分体系与自动化检查

基于 Rubric 的 Anthropic Cookbook Notebook 审计技能全解:工作流、评分体系与自动化检查 【免费下载链接】claude-cookbooks A collection of notebooks/recipes showcasing some fun and effective ways of using Claude. 项目地址: https://gitcode.com/GitHu…

📰

qKnow 智能体构建平台实践:如何用“小步验证、逐步扩展”完成知识问答场景落地?

在推进知识问答、智能体等 AI 应用实际落地过程中,接入范围越大,影响最终效果的变量也越多。 当问答结果不符合预期时,问题可能来自模型能力、文件质量、文档解析、知识分段、检索参数、知识图谱,也可能来自应用工作流本身。如果这…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

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

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

📞 💬