Kus*_*nda 18
$TMPDIR
比两者都更标准$TEMP
,$TMP
正如 POSIX 标准所提到的那样。
该
/tmp
目录保留在 POSIX.1-2008 中以容纳假定其可用性的历史应用程序。鼓励实现在环境变量中提供合适的目录名称,TMPDIR
并鼓励应用程序使用 的内容TMPDIR
来创建临时文件。
参考:http : //pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap10.html
至少在 macOS 上,默认情况下$TMPDIR
未设置为. 仍然可用,作为(无论出于何种原因)的符号链接。/tmp
/var/folders/4r/504v61kx02gczk_454db345c0000gn/T/
/tmp
/private/tmp
tmpdir="${TMPDIR:-/tmp}"
例如,您可以在脚本中使用$TMPDIR
它是否已设置或未/tmp
设置(或为空)。
默认情况下,非标准mktemp
实用程序将在其中创建文件或目录$TMPDIR
并输出其名称(但不在 macOS 上,见下文):
tmpfile=$(mktemp)
tmpdir=$(mktemp -d)
Run Code Online (Sandbox Code Playgroud)
查看mktemp
您系统上的手册以了解如何使用它。并非所有实现都相同。
在 macOS 上,由于原因,您必须为该mktemp
实用程序提供一个带有显式路径的模板:
tmpfile=$(mktemp "${TMPDIR:-/tmp}"/tmp.XXXXXXXX)
tmpdir=$(mktemp -d "${TMPDIR:-/tmp}"/tmp.XXXXXXXX)
Run Code Online (Sandbox Code Playgroud)
上面的命令将创建一个临时文件和目录(分别) in $TMPDIR
,或者 in/tmp
如果$TMPDIR
为空或变量未设置(此变量默认设置为getconf DARWIN_USER_TEMP_DIR
macOS 上的结果)。