有时候,我们需要创建文件临时存放一些输出的信息,创建文件时就可能出现文件名存在的问题。如何创建唯一的文件名,Linux为我们提供几个方案:

1、mktemp(强烈推荐)

The  mktemp  utility takes the given filename template and overwrites a portion of it to create a unique filename.  The template  may  be  any filename  with  some  number  of  'Xs'  appended  to  it,  for  example /tmp/tfile.XXXXXXXXXX.  If  no  template  is  specified a  default  of tmp.XXXXXXXXXX is used and the -t flag is implied (see below).

mktemp [-V] | [-dqtu] [-p directory] [template]
-d    Make a directory instead of a file.    # 创建临时目录

下面演示一下 mktemp 如何使用:

#!/bin/bash

TMPFILE=$(mktemp /tmp/tmp.XXXXXXXXXX) || exit 1
echo "program output" >> $TMPFILE

2、$RANDOM

编程中,随机数是经常要用到的。BASH也提供了这个功能:$RANDOM 变量,返回(0-32767)之间的随机数,它产生的是伪随机数,所以不应该用于加密的密码。

#!/bin/bash

TMPFILE="/tmp/tmp_$RANDOM"
echo "program output" >> $TMPFILE

3、$$变量

Shell的特殊变量 $$保存当前进程的进程号。可以使用它在我们运行的脚本中创建一个唯一的临时文件,因为该脚本在运行时的进程号是唯一的。

这种方法在同一个进程中并不能保证多个文件名唯一。但是它可以创建进程相关的临时文件。

#!/bin/bash

TMPFILE="/tmp/tmp_$$"
echo "program output" >> $TMPFILE

转载于:https://www.cnblogs.com/chengjian-physique/p/7913117.html

linux之创建临时文件的方法相关推荐

  1. Linux下创建临时文件

    已移到:http://www.iteblog.com/archives/172 临时文件是一个暂时用来存储数据的文件.如果使用建立普通文件的方法来创建文件,则可能遇到文件是否存在,是否有文件读写权限的 ...

  2. linux 下创建文件的方法

    linux  下创建文件的方法 touch  aaa.txt    创建一个叫aaa.txt的文件 echo   ""  >>  aaa.txt    创建一个叫aaa ...

  3. echo添加换行 linux_在 Linux 上创建文件的 10 个方法

    我下面将会介绍多个在 Linux 上创建文件的方法.我建议你选择几个简单高效的来辅助你的工作. -- Vinoth Kumar 我们都知道,在 Linux 上,包括设备在内的一切都是文件.Linux ...

  4. 易语言不能创建临时文件

    易语言破解版运行项目时提示 不能创建临时文件 解决方法: 右键易语言.exe 图标 ---->查看属性->兼容性->特权等级->以管理员身份运行此程序

  5. Java - 创建临时文件

    创建临时文件 IO 方法 NIO 方法 IO 方法 java.io.File.createTempFile(String prefix, String suffix, File directory) ...

  6. 什么是RAID及创建RAID的方法

    目录 一.什么是RAID 二.RAID 的级别 三.RAID 的分类 四.通过BIOS创建RAID(硬RAID) 五.通过管理口创建RAID(硬RAID) 六.Linux下创建RAID的方法(软RAI ...

  7. linux spyder 目录,linux下创建spyder桌面图标的方法

    linux下创建spyder桌面图标的方法 发布时间:2020-07-20 11:08:41 来源:亿速云 阅读:96 作者:清晨 小编给大家分享一下linux下创建spyder桌面图标的方法,希望大 ...

  8. 在Linux系统的命令行中为MySQL创建用户的方法

    这篇文章主要介绍了在Linux系统的命令行中为MySQL创建用户的方法,包括对所建用户的权限管理,需要的朋友可以参考下 要访问一个MySQL服务器,你需要使用一个用户帐号登录其中方可进行.每个MySQ ...

  9. linux 流函数,标准IO函数库 - 二进制文件IO,流定位,创建临时文件和内存流

    1 二进制IO(Binary IO) 在前一篇我们了解了逐字符读写和逐行读写函数. 如果我们在读写二进制文件,希望以此读写整个文件内容,这两个函数虽然可以实现,但是明显会很麻烦且多次循环明显效率很低. ...

最新文章

  1. 20135234mqy 实验四
  2. java中抽象接口_一篇文章让你彻底理解java中抽象类和接口
  3. windows server 2008 让domain user有本地administrator权限
  4. webpack中设置jquery为全局对象
  5. 为什么创业者专注做一个产品最好?
  6. extern、static
  7. 【教你如何放大招】程序猿是如何一点点的吃下一个产品的
  8. python class用法理解_通过钢铁侠变身快速理解Python的装饰器用法
  9. 自定义控件-----输入框
  10. Dataguard后台进程解析
  11. SQL Server中的基数估计过程
  12. 【剑指 offer】(十)—— 二进制形式 1 的个数
  13. Apizza-快如何进行API开发进度管理
  14. 燃气行业引入电子签章推动燃气销售合同线上签署
  15. 当当网上书店头部和尾部——JS源码
  16. [C++] Kmeans算法实现
  17. springboot毕设项目流云医疗管理系统davy2(java+VUE+Mybatis+Maven+Mysql)
  18. java编程第七周作业
  19. 专精特新小巨人企业是什么
  20. 微信小程序开发详细步骤解决方案

热门文章

  1. python操作mysql(四)
  2. Spring入门第十三课
  3. [Wordpress]wp_dropdown_categories() 添加自定义的attribute(属性)
  4. 控制器属性传值的一些小问题
  5. IE浏览器加载CSS文件,但是不起作用的原因
  6. python基本语法积累~
  7. Docker容器制作
  8. flannel源码分析--main
  9. linux I/O--五种I/O模型(一)
  10. mysql查询当前use的数据库