mktemp 在 pwd 中创建文件而不是在 /tmp 中

mktemp 在 pwd 中创建文件而不是在 /tmp 中

以前 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设置)。

相关内容