编写shell脚本时,我们经常需要存储临时数据。最适合存储临时数据的位置是 /tmp(该目录中的内容在系统重启后会被清空)。有两种方法可以为临时数据生成标准的文件名。
2.10.1 实战演练
执行下列步骤来创建临时文件并进行不同的命名操作。
-
创建临时文件:
$ filename=`mktemp` $ echo $filename /tmp/tmp.8xvhkjF5fH
上面的代码创建了一个临时文件,并打印出存储在
$filename
中的文件名。 -
创建临时目录:
$ dirname=`mktemp -d` $ echo $dirname tmp.NI8xzW7VRX
上面的代码创建了一个临时目录,并打印出存储在
$dirname
中的目录名。 -
如果仅仅是想生成文件名,又不希望创建实际的文件或目录,方法如下:
$ tmpfile=`mktemp -u` $ echo $tmpfile /tmp/tmp.RsGmilRpcT
文件名被存储在
$tmpfile
中,但并没有创建对应的文件。 -
根据模板创建临时文件名:
$mktemp test.XXX test.2tc
2.10.2 工作原理
mktemp
命令的用法非常简单。它生成一个临时文件并返回其文件名(如果创建的是目录,则返回目录名)。
如果提供了定制模板,X
会被随机的字符(字母或数字)替换。注意,mktemp
正常工作的前提是保证模板中只少要有3个X
。