以前 mktemp 用于在/tmp
.今天我注意到 mktemp 正在创建文件 $PWD
而不是在/tmp
?
我是否无意中改变了一些东西?有什么建议来解决这个问题吗?
笔记:
我能够做到:ls /tmp
$ mktemp --version
mktemp (GNU coreutils) 8.30
$ echo $TMPDIR
$
答案1
TEMPLATE
对于 GNU Coreutils 实现,根据命令行上是否提供显式内容而有所不同。根据手册页:
SYNOPSIS mktemp [OPTION]... [TEMPLATE]
If TEMPLATE is not specified, use `tmp.XXXXXXXXXX`, and `--tmpdir` is implied.
(注意--tmpdir is implied
);在哪里
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not specified, use $TMPDIR if set, else /tmp.
所以
$ mktemp foo.XXX
foo.eWT
使用当前目录,而普通
$ mktemp
/tmp/tmp.hrY7qNWWty
默认为/tmp
(因为--tmpdir
是隐含的,但没有$TMPDIR
设置)。