如何将默认的 /tmp 更改为 /home/user/tmp

如何将默认的 /tmp 更改为 /home/user/tmp

是否有一个环境变量可以在基于 debian 的系统上设置临时目录?

我有一个使用该环境变量的 Java 小程序,在启动同一个小程序的两个实例时会出现混乱。

答案1

我不确定 Java 小程序在启动之前是否会真正查看环境变量,但您可以编辑 /etc/profile 并添加以下行:

if [[ -O /home/$USER/tmp && -d /home/$USER/tmp ]]; then
        TMPDIR=/home/$USER/tmp
else
        # You may wish to remove this line, it is there in case
        # a user has put a file 'tmp' in there directory or a
        rm -rf /home/$USER/tmp 2> /dev/null
        mkdir -p /home/$USER/tmp
        TMPDIR=$(mktemp -d /home/$USER/tmp/XXXX)
fi

TMP=$TMPDIR
TEMP=$TMPDIR

export TMPDIR TMP TEMP

为了使其成为真正的 tmp 目录(因为会话结束时文件会消失),您需要编辑用户的 .bash_logout 以及骨架 .bash_logout(/etc/skel/.bash_logout)以包含以下内容:

if [ -O $TMPDIR && -d $TMPDIR ]; then
        rm -rf $TMPDIR/*
fi

如果变量未设置且您以 root 身份登录,则注销部分很危险!我不会将其添加到 root 帐户或任何 wheel 组成员!请谨慎行事。

答案2

您要查找的文件是:

/etc/environment

您必须设置 TEMP 变量如下:

TEMP=/home/user/tmp

答案3

如果您希望/home/user/tmp在重启时清理,我建议您@reboot在用户的个人文件夹中添加一项作业crontab

答案4

对于我来说,当我尝试使用 java 安装 jar 文件时,此方法有效。

export _JAVA_OPTIONS="-Djava.io.tmpdir=/apps/prod/tmp"

我使用 Red Hat Linux。/apps/prod/tmp这是新文件夹。

相关内容