mktemp命令用于建立暂存文件或者文件夹,帮助文档如下:
Usage: mktemp [OPTION]... [TEMPLATE]
Create a temporary file or directory, safely, and print its name.
TEMPLATE must contain at least 3 consecutive ‘X‘s in last component.
If TEMPLATE is not specified, use tmp.XXXXXXXXXX, and --tmpdir is implied.
Files are created u+rw, and directories u+rwx, minus umask restrictions.
-d, --directory create a directory, not a file
-u, --dry-run do not create anything; merely print a name (unsafe)
-q, --quiet suppress diagnostics about file/dir-creation failure
--suffix=SUFF append SUFF to TEMPLATE; SUFF must not contain a slash.
This option is implied if TEMPLATE does not end in X
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
--help display this help and exit
--version output version information and exit
Linux系统有特殊的目录,专供临时文件使用。Linux使用/tmp目录来存放不需要永久保留的文件。mktemp命令专门用来创建临时文件,并且其创建的临时文件是唯一的。shell会根据mktemp命令创建临时文件,但不会使用默认的umask值(管理权限的)。它会将文件的读写权限分配给文件属主,一旦创建了文件,在shell脚本中就拥有了完整的读写权限,其他人不可访问(除了root)。
用法如下:
linux-UMLhEm:/home # mktemp abc.XXX abc.cJD
#默认生成在系统/tmp目录下,生成的文件模板为tmp.XXXXXXXXXX linux-UMLhEm:/home # mktemp /tmp/tmp.Yr5NTRV3sj linux-UMLhEm:/home # mktemp -t /tmp/tmp.LMEdNCrPJN
#自定义文件模板,并且生成在系统目录下 linux-UMLhEm:/home # mktemp -t abc.XXXXXX /tmp/abc.wn27Pg
#生成临时目录 linux-UMLhEm:/home # mktemp -d /tmp/tmp.UuZ8TIdxwa linux-UMLhEm:/home # file /tmp/tmp.UuZ8TIdxwa/ /tmp/tmp.UuZ8TIdxwa/: directory
#文件模板XXX不能少于3个 linux-UMLhEm:/home # mktemp -d --tmpdir=/home abc.XX mktemp: too few X‘s in template ‘abc.XX’
#在指定目录下生成临时文件 linux-UMLhEm:/home # mktemp -d --tmpdir=/home abc.XXX /home/abc.2i3 linux-UMLhEm:/home #