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


Answers:


17

我不确定java applet是否会在启动之前实际查看环境变量,但是您可以执行以下操作编辑/ 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组成员的任何人!请谨慎操作。


3
我根本不会将清理工作放到.bash_logout中-如果他们打开两个会话并注销一个会话,会发生什么情况?使用tmpwatch。:)
MikeyB

这是一个更好的清理解决方案,感谢您的补充。:)
TrueDuality

注意:该tmpwatch命令在unix的BSD(例如OSX)版本上不存在,对于任何想要移植的人。我的CentOS机器上有它。:)
Cometsong

8

您要查找的文件是:

/etc/environment

您必须像这样设置TEMP变量:

TEMP=/home/user/tmp

2
甚至export TEMP=/home/user/tmp
Fedir RYKHTIK 2014年

是@Fedir在外壳中,是的。
cstamas

2

如果要/home/user/tmp在重新启动时进行清理,建议您将@reboot作业添加到用户的Personal上crontab



1

Java使用system属性java.io.tmpdir配置临时目录。如果未明确指定,则合理的JRE会根据系统将其设置为合理的值。


1

对我来说,这在我尝试使用Java安装jar文件时起作用。

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.