mktemp
命令用于安全地创建一个临时文件或目录,并输出其名称,TEMPLATE
在最后一个组件中必须至少包含3
个连续的X
,如果未指定TEMPLATE
,则使用tmp.XXXXXXXXXX
作为名称在当前目录下创建相应的临时文件,X
为生成的随机数,尾部的X
将替换为当前进程号和随机字母的组合,文件的名称取决于模板中X
的数量以及与现有文件冲突的数量,mktemp
可以返回的唯一文件名的数量取决于所提供的X
的数量,十个X
将导致mktemp
测试大约26**10
个组合,mktemp
命令创建的临时文件不会使用默认的umask
管理权限值,其会将文件的读写权限分配给文件属主,一旦创建了文件,在shell
脚本中就拥有了完整的读写权限,除root
外其他人不可访问,即在创建文件时即有u+rw
权限,创建文件夹时有u+rwx
权限。
mktemp [OPTION] [TEMPLATE]
-d, --directory
: 创建目录,而不是文件。-u, --dry-run
: 在mktemp
退出之前,临时文件将被取消链接,相当于不创建任何文件或文件夹,仅输出名称,不建议使用该选项。-q, --quiet
: 执行时若发生错误,不会输出任何信息。--suffix=SUFF
: 将STUFF
附加到TEMPLATE
,SUFF
不能包含斜线,如果TEMPLATE
不以X
结尾,则默认此选项。-p <DIR>, --tmpdir <DIR>
: 生成临时文件时使用指定的目录作为目标。-t
: 将目标文件存储在临时目录,该目录首先会选择用户的TMPDIR
环境变量,其次是用户指定的-p
参数选择的目录,最后的选择即/tmp
目录,创建后会输出临时文件的全路径。--help
: 输出帮助选项。--version
: 输出版本信息。
在当前目录创建临时文件。
mktemp tmp.XXX
# tmp.g6k
创建指定文件类型的临时文件。
mktemp tmp.XXX --suffix=.txt
# tmp.gSI.txt
在指定目录创建临时文件。
mktemp --tmpdir=/home tmp.XXX
# /home/tmp.HxB
https://github.com/WindrunnerMax/EveryDay
https://www.jianshu.com/p/31660ac1650f
https://www.cnblogs.com/xingmuxin/p/8440689.html
https://www.runoob.com/linux/linux-comm-mktemp.html