Linux的mktemp命令

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

Linux系统有特殊的目录,专供临时文件使用。Linux使用/tmp目录来存放不需要永久保留的文件。mktemp命令专门用来创建临时文件,并且其创建的临时文件是唯一的。shell会根据mktemp命令创建临时文件,但不会使用默认的umask值(管理权限的)。它会将文件的读写权限分配给文件属主,一旦创建了文件,在shell脚本中就拥有了完整的读写权限,其他人不可访问(除了root)。mktemp命令用法如下:

  • 默认情况

默认情况下,mktemp会在本地当前目录创建一个临时文件,创建临时文件时只需要创建模板文件,模板可以包含任意的文件名,文件末尾可以根据需要添加nX。Demo如下:

1
2
3
4
5
6
7
8
9
10
11
# 创建临时文件
$ mktemp test.XXXX
test.LUTA

$ mktemp test.XXXXXX
test.YgW9gf

# 保存创建的临时文件
$ test=$(mktemp test.XXXXXX)
$ echo $test
test.vTqiVc
  • -t选项

-t选项会强制mktemp命令在系统的临时目录中创建临时文件,创建时mktemp命令会返回临时文件的全路径。Demo如下:

1
2
$ mktemp -t test.XXXXXX
/var/folders/ky/fvshg4_93p177q7pnm718vph0000gn/T/test.XXXXXX.O3dKTv6E
  • -d选项

-d选项告诉mktemp命令创建一个临时目录而不是临时文件。Demo如下:

1
2
3
4
5
6
7
# 创建临时目录
$ mktemp -d test.XXXXXX
test.CJmaBe

# 查看test.CJmaBe是否是目录
$ ls -F
test.CJmaBe/ test.LUTA test.YgW9gf test.vTqiVc

参考资料

  1. Linux命令行与shell脚本大全
如果有收获,可以请我喝杯咖啡!