Cách thay đổi mặc định / tmp thành / home / user / tmp


Câu trả lời:


17

Tôi không chắc chắn nếu applet java thực sự sẽ xem xét các biến môi trường trước khi nó bắt đầu, nhưng những gì bạn có thể làm nó chỉnh sửa / etc / profile và thêm các dòng sau:

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

Để biến nó thành một thư mục tmp thực sự (như trong các tệp sẽ biến mất khi phiên kết thúc, bạn sẽ muốn chỉnh sửa .bash_logout cũng như bộ xương .bash_logout (/etc/skel/.bash_logout) để bao gồm các mục sau :

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

Phần đăng xuất rất nguy hiểm là biến không được đặt và đăng nhập của bạn với quyền root! Tôi sẽ không thêm tài khoản này vào tài khoản root hoặc bất kỳ ai là thành viên của nhóm bánh xe! Tiến hành thận trọng của riêng bạn.


3
Tôi sẽ không dọn dẹp vào .bash_logout - điều gì xảy ra nếu họ mở hai phiên và đăng xuất khỏi một phiên? Sử dụng tmpwatch. :)
MikeyB

Đó là một giải pháp dọn dẹp tốt hơn nhiều, cảm ơn vì đã thêm nó. :)
TrueDuality

NB: tmpwatchlệnh không tồn tại trên phiên bản unix của BSD (ví dụ OSX), cho bất kỳ ai đi tìm tính di động. Hộp CentOS của tôi có nó mặc dù. :)
Cometsong

8

Các tập tin bạn đang tìm kiếm là:

/etc/environment

Bạn phải đặt biến TEMP như:

TEMP=/home/user/tmp

2
Và thậm chíexport TEMP=/home/user/tmp
Fedir RYKHTIK

@Fedir đó là trong vỏ, vâng.
cstamas

2

Nếu bạn muốn /home/user/tmpđược làm sạch khi khởi động lại, tôi khuyên bạn nên thêm một @rebootcông việc vào cá nhân của người dùng crontab.


1

Trong C, tôi sẽ sử dụng lệnh gọi tmpfile () cho một hệ thống posix, để tránh xung đột. Vì vậy, tôi sẽ tìm kiếm một cuộc gọi Java tương tự trước khi cố gắng tự thực hiện nó, nếu bạn chưa có.


Điều này giả định rằng anh ta là người phát triển ứng dụng
TrueDuality

TrueDuality: Ah, lỗi của tôi
Kyle Brandt

1
Java có java.io.File.createTempFile. Bây giờ với RNG an toàn bổ sung.
Tom Hawtin - tackline

1

Java sử dụng thuộc tính hệ thống java.io.tmpdirđể cấu hình thư mục tạm thời. JRE hợp lý sẽ đặt giá trị đó thành giá trị hợp lý dựa trên hệ thống nếu không được chỉ định rõ ràng.


1

Đối với tôi điều này hoạt động khi tôi đang cố gắng cài đặt một tệp jar bằng java.

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

Tôi sử dụng Red Hat Linux. /apps/prod/tmplà thư mục mới.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.