如何在当前工作目录中使用mktemp创建临时目录?

时间:2016-09-15 20:24:18

标签: tmp mktemp

我创建了一个将多个程序串在一起的管道,遗憾的是这些程序在/tmp文件夹中创建了大量的临时文件,当使用大型数据集时,我的管道崩溃,因为/tmp文件夹已填满

如何导出临时文件,以便在运行管道的当前工作目录中创建临时文件,而不是在/tmp文件夹中?

目前我已尝试将TMPDIR env变量导出到当前工作目录中已创建的目录/work,但临时文件仍在/tmp文件夹中创建:

export TMPDIR=$(mktemp -d --tmpdir=/work)
<script>
rm -rf $TMPDIR

程序没有为创建的临时文件设置不同输出文件夹的选项。

1 个答案:

答案 0 :(得分:1)

如果目录/work位于当前目录中,只需将work更改为work即可。 /work表示您有一个名为/work的顶级目录。如果没有正斜杠,它将是一个相对目录。

我刚在计算机上测试了这段代码。我注意到没有文件写入/tmp

mkdir work
export TMPDIR=$(mktemp -d --tmpdir=work)
ls work
# tmp.AWA4dTERha
rm -rf $TMPDIR
ls work
# --no output--