Como alterar o padrão / tmp para / home / user / tmp

11

Existe uma variável de ambiente para definir o diretório temporário em sistemas baseados no Debian?

Eu tenho um applet java que usa essa variável environement e está ficando confuso ao lançar duas instâncias do mesmo applet.

    
por Disco 09.10.2009 / 16:33

6 respostas

14

Não tenho certeza se o applet java irá realmente olhar as variáveis de ambiente antes de começar, mas o que você pode fazer é editar / etc / profile e adicionar as seguintes linhas:

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

Para torná-lo um verdadeiro diretório tmp (como nos arquivos que desaparecem quando a sessão é finalizada, você desejará editar o .bash_logout do usuário, bem como o esqueleto .bash_logout (/etc/skel/.bash_logout) para inclua o seguinte:

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

A parte de logout é perigosa se a variável não for configurada e você estiver logado como root! Eu não adicionaria isso à conta do root ou a qualquer um que fosse membro do grupo wheel! Prossiga com sua própria cautela.

    
por 09.10.2009 / 17:00
8

O arquivo que você está procurando é:

/etc/environment

Você precisa definir a variável TEMP como:

TEMP=/home/user/tmp
    
por 09.10.2009 / 16:59
2

Se você quiser que /home/user/tmp seja limpo na reinicialização, sugiro adicionar um trabalho @reboot ao usuário crontab do usuário.

    
por 13.10.2009 / 04:06
1

Em C, eu usaria o tmpfile () chamado de um sistema posix, que evitaria a colisão. Então, eu procuraria uma chamada Java semelhante antes de tentar implementá-la, se você ainda não o fez.

    
por 09.10.2009 / 16:51
1

O Java usa a propriedade do sistema java.io.tmpdir para configurar o diretório temporário. Um JRE razoável definirá isso com um valor sensato baseado no sistema, se não for especificado explicitamente.

    
por 13.10.2009 / 02:19
0

Para mim, isso funcionou quando eu estava tentando instalar um arquivo jar usando java.

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

Eu uso um Red Hat Linux. /apps/prod/tmp é a nova pasta.

    
por 01.05.2017 / 18:55