在写 Shell Script 时, 有时需要建立临时档案, 很多时会用 temp 或 tmp 这类副档名实现。但如果这些档案名称和其他 process 的临时档案名称相同, 便会错误地覆写其他临时档案的内容。
在 Linux 系统可以用 mktemp 工具, 它可以很简单地建立, 使用及移除不会重复档名的临时档案。
执行 mktemp 时, 它们默认会出档案名称及路径:
$ mktemp
/tmp/tmp.94uGx1HYiS
/tmp/tmp.94uGx1HYiS
如果没有指定路径, 临时档案的的位置是 /tmp 目录, 如果想指令路径, mktemp 需要加入 -p 参数, 例如:
$ mktemp -p ~/testing
以上指令执行后, 会建立独一无二的临时档案, 并会把结果印出, 在 Shell Script 要使用, 可以把结果储存到变量, 例如:
$ TMPFILE=$(mktemp -p ~/Demo)
$ echo $TMPFILE
/tmp/tmp.e5Uq50nWor
这样便可以建立独一无二的暂存盘案名称, 并把档案的路径储存到 $TMPFILE 变量。要写入内容到临时档, 用完后直接删除这个临时档案, 只要直接操作 $TMPFILE 即可。
而 mktemp 也可以指定档案, 加入 –suffix 参数, 便可以指定临时档案的副档名, 例如:
$ mktemp –suffix .tmp
/tmp/tmp.rIcfnEWsnZ.tmp
/tmp/tmp.rIcfnEWsnZ.tmp
以上是用 mktemp 建立临时档案的方法。