【发布时间】:2016-09-15 20:24:17
【问题描述】:
我创建了一个将多个程序串在一起的管道,不幸的是,这些程序在 /tmp 文件夹中创建了大量临时文件,当使用大型数据集时,我的管道崩溃,因为 /tmp 文件夹已满。
如何导出临时文件,以便在运行管道的当前工作目录中创建它们,而不是在 /tmp 文件夹中?
目前我已尝试将TMPDIR 环境变量导出到我当前工作目录中已创建的目录/work,但仍在/tmp 文件夹中创建临时文件:
export TMPDIR=$(mktemp -d --tmpdir=/work)
<script>
rm -rf $TMPDIR
程序没有为创建的临时文件设置不同的输出文件夹的选项。
【问题讨论】:
-
您收到什么错误信息?请务必在可用时提及错误消息。
-
管道的错误信息?这是一个典型的 IOError: No space available on device 错误,在 /tmp 文件已满时很常见。
-
您的硬盘上还剩多少空间(即
df -h .)? -
我有两个 4TB 硬盘驱动器,我负责大部分的临时工作。一个是完全空的,另一个是 50% 满的。我的 /tmp 目录只有 9gb 的可用空间,这是问题的根源。