Câu trả lời:
/tmp
có nghĩa là lưu trữ nhanh (có thể nhỏ) với vòng đời ngắn. Nhiều hệ thống dọn dẹp /tmp
rất nhanh - trên một số hệ thống, nó thậm chí còn được gắn dưới dạng đĩa RAM. /var/tmp
thường nằm trên một đĩa vật lý, lớn hơn và có thể giữ các tệp tạm thời trong một thời gian dài hơn. Một số hệ thống cũng sạch sẽ /var/tmp
, nhưng ít thường xuyên hơn.
Cũng lưu ý rằng /var/tmp
có thể không có sẵn trong quá trình khởi động sớm, vì /var
và / hoặc /var/tmp
có thể là các điểm gắn kết. Do đó, nó là một chút so sánh với sự khác biệt giữa /bin
và /usr/bin
. Cái đầu tiên có sẵn trong khi khởi động sớm - cái sau sau khi hệ thống đã gắn kết mọi thứ. Vì vậy, hầu hết các kịch bản khởi động sẽ sử dụng /tmp
và không /var/tmp
cho các tệp tạm thời.
Một vị trí (sắp tới) trên Linux cho các tệp tạm thời là /dev/shm
.
/bin
và /usr/bin
thực sự giống nhau ngày nay (symlinks). ;-)
/tmp
có thể, và đôi khi là, được làm sạch khi khởi động lại. /var/tmp
được bảo tồn giữa các lần khởi động lại.
Họ có cùng mục đích và chức năng. Mỗi phiên bản UNIX / Linux sẽ xử lý các thư mục này khác nhau. Trước đây, trước sự ra đời của các hệ thống tệp dựa trên RAM / trao đổi, bạn có các hệ thống không có đĩa trong đó các hệ thống /
và /usr
tệp sẽ ở chế độ chỉ đọc và /var
(biến) sẽ là đọc-ghi. Các /tmp
tên sẽ là một liên kết tượng trưng đến /var/tmp
. Sau đó, các hệ thống không có đĩa không còn hoạt động, không gian đĩa trở nên rẻ hơn (để có các tệp gốc lớn hơn) và công nghệ cho phép các hệ thống tệp được gắn từ bộ nhớ thay vì đĩa. Thư mục /var/tmp
bị lỗi mốt, nhưng vẫn được một số chương trình sử dụng.
Ngày nay, nhiều bảo mật được thiết lập theo mặc định /tmp
, như g+s,+t
quyền, nhưng không bật /var/tmp
. Ngoài ra, /var/tmp
hiếm khi được gắn từ RAM hoặc trao đổi.
a+rwx+t
- và không g+s
.
Thông số kỹ thuật cơ sở POSIX, Số 7 trên / tmp :
Thư mục sau sẽ tồn tại trên các hệ thống phù hợp và sẽ được sử dụng như mô tả:
/ tmp
Một thư mục có sẵn cho các ứng dụng cần một nơi để tạo các tệp tạm thời. Các ứng dụng sẽ được phép tạo các tệp trong thư mục này, nhưng không cho rằng các tệp đó được bảo tồn giữa các yêu cầu của ứng dụng.
Tiêu chuẩn phân cấp tệp 2.3 trên / tmp :
Thư mục / tmp phải được cung cấp cho các chương trình yêu cầu tệp tạm thời.
Các chương trình không được cho rằng bất kỳ tệp hoặc thư mục nào trong / tmp đều được giữ nguyên giữa các yêu cầu của chương trình.
Cơ sở lý luận
Tiêu chuẩn IEEE P1003.2 (POSIX, phần 2) đưa ra các yêu cầu tương tự như phần trên.
Mặc dù dữ liệu được lưu trữ trong / tmp có thể bị xóa theo cách dành riêng cho trang web, nhưng các tệp và thư mục nằm trong / tmp nên được xóa bất cứ khi nào hệ thống được khởi động.
FHS đã thêm khuyến nghị này trên cơ sở tiền lệ và thông lệ lịch sử, nhưng không biến nó thành một yêu cầu vì quản trị hệ thống không nằm trong phạm vi của tiêu chuẩn này.
POSIX không chỉ định / var / tmp . FHS mặc dù :
Thư mục / var / tmp được cung cấp cho các chương trình yêu cầu các tệp hoặc thư mục tạm thời được bảo tồn giữa các lần khởi động lại hệ thống. Do đó, dữ liệu được lưu trữ trong / var / tmp liên tục hơn dữ liệu trong / tmp .
Không được xóa các tệp và thư mục trong / var / tmp khi hệ thống được khởi động. Mặc dù dữ liệu được lưu trữ trong / var / tmp thường bị xóa theo cách cụ thể của trang web, nhưng chúng tôi khuyên bạn nên xóa xảy ra ở một khoảng thời gian ít thường xuyên hơn so với / tmp .