我创建了一个将多个程序串在一起的管道,遗憾的是这些程序在/tmp
文件夹中创建了大量的临时文件,当使用大型数据集时,我的管道崩溃,因为/tmp
文件夹已填满
如何导出临时文件,以便在运行管道的当前工作目录中创建临时文件,而不是在/tmp
文件夹中?
目前我已尝试将TMPDIR
env变量导出到当前工作目录中已创建的目录/work
,但临时文件仍在/tmp
文件夹中创建:
export TMPDIR=$(mktemp -d --tmpdir=/work)
<script>
rm -rf $TMPDIR
程序没有为创建的临时文件设置不同输出文件夹的选项。
答案 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--