4

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

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

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

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

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

4

1 回答 1

4

只需更改/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--
于 2016-09-15T20:57:36.920 回答