创建临时文件和目录
文章目录
创建临时文件
Linux系统有特殊的目录,专供临时文件使用。Linux使用/tmp目录来存放不需要永久保留的 文件。大多数Linux发行版配置了系统在启动时自动删除/tmp目录的所有文件。
系统上的任何用户账户都有权限在读写/tmp目录中的文件。这个特性为你提供了一种创建临 时文件的简单方法,而且还不用操心清理工作。
有个特殊命令可以用来创建临时文件。mktemp命令可以在/tmp目录中创建一个唯一的临时 文件。shell会创建这个文件,但不用默认的umask值。它会将文件的读和写权限分 配给文件的属主,并将你设成文件的属主。一旦创建了文件,你就在脚本中有了完整的读写权限, 但其他人没法访问它(当然,root用户除外)。
创建本地临时文件
默认情况下,mktemp会在本地目录中创建一个文件。要用mktemp命令在本地目录中创建一 个临时文件,你只要指定一个文件名模板就行了。模板可以包含任意文本文件名,在文件名末尾 加上6个X就行了。
$ mktemp testing.XXXXXX
mktemp命令会用6个字符码替换这6个X,从而保证文件名在目录中是唯一的。你可以创建多 个临时文件,它可以保证每个文件都是唯一的。
在脚本中使用mktemp命令 时,可能要将文件名保存到变量中,这样就能在后面的脚本中引用了。
tempfile=$(mktemp test19.XXXXXX)
在/tmp目录创建临时文件
-t选项会强制mktemp命令来在系统的临时目录来创建该文件。在用这个特性时,mktemp命 令会返回用来创建临时文件的全路径,而不是只有文件名。
由于mktemp命令返回了全路径名,你可以在Linux系统上的任何目录下引用该临时文件,不 管临时目录在哪里。
在mktemp创建临时文件时,它会将全路径名返回给变量。这样你就能在任何命令中使用该 值来引用临时文件了。
tempfile=$(mktemp -t tmp.XXXXXX)
创建临时目录
-d选项告诉mktemp命令来创建一个临时目录而不是临时文件。这样你就能用该目录进行任何需要的操作了,比如创建其他的临时文件。
tempdir=$(mktemp -d dir.XXXXXX)
文章作者 Forz
上次更新 2017-08-10