是否有一个环境变量可以在基于 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
这是新文件夹。