Shell 临时文件命名与随机数,shell
脚本经常需要存储临时数据。最适合存储临时数据的位置是 /tmp
(该目录中的内容在系统重启后会被清空)。有两种方法可以为临时数据生成标准的文件名。
实战演练
mktemp
命令可以为临时文件或目录创建唯一的名字。
(1) 创建临时文件:
$ filename=`mktemp`
$ echo $filename
/tmp/tmp.8xvhkjF5fH
上面的代码创建了一个临时文件,然后打印出保存在变量filename
中的文件名。
(2) 创建临时目录:
$ dirname=`mktemp -d`
$ echo $dirname
tmp.NI8xzW7VRX
上面的代码创建了一个临时目录,然后打印出保存在变量dirname
中的目录名。
- 如果仅仅是想生成文件名,不希望创建实际的文件或目录,可以这样:
$ tmpfile=`mktemp -u`$ echo $tmpfile/tmp/tmp.RsGmilRpcT
文件名被存储在$tmpfile
中,但并没有创建对应的文件。
- 基于模板创建临时文件名:
$mktemp test.XXXtest.2tc
工作原理
mktemp
命令的用法非常简单。它生成一个具有唯一名称的文件并返回该文件名(如果创建的是目录,则返回目录名)。
如果提供了定制模板,X
会被随机的字符(字母或数字)替换。注意,mktemp
正常工作的前提是保证模板中至少要有3个X
。