Files

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

  • May 6, 2021

以前 mktemp 用於在/tmp. 今天我注意到 mktemp 正在創建文件 in $PWD而不是 in /tmp?

我是不是無意間改變了什麼?有什麼建議可以解決這個問題嗎?


筆記:

我能夠做到:ls /tmp

$ mktemp --version
mktemp (GNU coreutils) 8.30
$ echo $TMPDIR

$

對於 GNU Coreutils 實現,取決於是否TEMPLATE在命令行上提供了顯式的不同。根據手冊頁:

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設置)。

引用自:https://unix.stackexchange.com/questions/648470