Thư mục tạm thời trong Linux ở đâu?


63

Linux có thư mục tạm thời tiêu chuẩn để sử dụng chung, như C:\Tempthư mục của Windows không? Nếu vậy, mà là nó nằm ở đâu? Tôi đã tìm thấy một câu hỏi SO về việc tìm một tmpthư mục theo chương trình , nhưng tôi muốn đặt một vị trí tạm thời trong một tệp cấu hình XML trước thời hạn.


1
Tôi biết đây có vẻ là một câu hỏi thực sự dễ, nhưng tôi không thể tìm thấy câu trả lời rõ ràng, đơn giản thông qua tìm kiếm. Nhiều kết quả tôi nhận được là cho các tệp / thư mục tạm thời dành riêng cho chương trình. Tôi đã thấy nhiều tài liệu tham khảo /tmp, nhưng họ mơ hồ về việc đó là tiêu chuẩn cho Linux hay chỉ là một quy ước chung.
Pops

5
Windows C:\Tempchắc chắn là không chuẩn. Windows 95 đã được %TEMP%trỏ đến C:\WINDOWS\Temp.
grawity

Câu trả lời:


91

Các Filesystem Hierarchy Chuẩn phiên bản 3.0 cho biết:

/ tmp: Tệp tạm thời

Thư mục /tmpphả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 /tmpnào được bảo tồn giữa các yêu cầu của chương trình.

Cơ sở lý luận

Chuẩn POSIX.1-2008 của IEEE liệt kê các yêu cầu tương tự như phần trên. Mặc dù dữ liệu được lưu trữ /tmpcó 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 /tmpsẽ bị 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.

/ var / tmp: Các tệp tạm thời được bảo tồn giữa các lần khởi động lại hệ thống

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/tmpliên tục hơn dữ liệu trong /tmp.

Các tập tin và thư mục nằm trong /var/tmpkhông được xóa khi hệ thống được khởi động. Mặc dù dữ liệu được lưu trữ /var/tmpthườ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 việc xảy ra ở một khoảng thời gian ít thường xuyên hơn /tmp.

Ngoài ra, Thông số kỹ thuật cơ sở nhóm mở số 7, Biến môi trường đề cập đến các vấn đề sau:

TMPDIR Biến này sẽ đại diện cho một tên đường dẫn của một thư mục có sẵn cho các chương trình cần một nơi để tạo các tệp tạm thời.


Thật khó để tranh luận với tiêu chuẩn. Cảm ơn!
Pops

11

Đây là một câu hỏi cũ vì vậy ngày nay có một lựa chọn khác có sẵn. Các bản phân phối Linux dựa trên systemd(chiếm 90% trong số chúng) hiện có thể sử dụng $XDG_RUNTIME_DIRthư mục ( Đặc tả thư mục cơ sở XDG ) để lưu trữ một số loại tệp tạm thời. Nó thường được đặt tại /run/user/$uid. Đây là một thư mục cho mỗi người dùng với các 700quyền cung cấp bảo mật tốt hơn. Đây là một tmpfsgắn kết cung cấp hiệu suất. Nhược điểm của tmpfsnó là chỉ nên được sử dụng để giữ các tệp và ổ cắm nhỏ.

Tôi xem nó như một cuộc hôn nhân của /tmp/var/run.


Chắc chắn công nghệ đã được cải thiện kể từ 5 năm
từ

10

Có / tmp là để sử dụng chung. Xem ở đâyở đây Trên Tiêu chuẩn phân cấp hệ thống tập tin.

/ tmp / Tệp tạm thời (xem thêm / var / tmp). Thường không được bảo tồn giữa các lần khởi động lại hệ thống.

Với một số chi tiết được liệt kê trong PDF.


2

Bạn không thể chọn một tên thư mục tạm thời trước thời hạn sẽ hoạt động cho bất kỳ hệ thống Linux nào. Thực tế, bạn cũng không thể làm điều đó trên Windows. Theo bài viết của Wikipedia về các thư mục tạm thời , thư mục tạm thời trên Windows được xác định bởi biến môi trường TEMP. Nếu bạn chỉ đơn giản sử dụng c:\Tempnhư một thư mục tạm thời trên hệ thống Windows đặt TEMP thành một thứ khác, thì bất kỳ chương trình nào sử dụng tệp XML của bạn để chọn thư mục tạm thời sẽ thất bại.

Nói tóm lại, thư mục tạm thời của hệ thống được xác định bởi môi trường trên tất cả các hệ điều hành hiện đại mà tôi biết, bao gồm cả Windows và bất kỳ hệ thống nào giống UNIX. Đặt một đường dẫn tĩnh duy nhất là thư mục tạm thời của bạn sẽ chỉ hoạt động miễn là mặc định không được thay đổi.

Dù sao, thư mục tạm thời tiêu chuẩn trong một hệ thống Linux điển hình là /tmp. Nó tương đương C:\Tempvới ý nghĩa rằng nó chỉ là thư mục tạm thời mặc định, không phải là phổ quát. Ngay cả khi /tmpcó sẵn, nếu người dùng (hoặc hệ thống) đã đặt biến môi trường TEMP, giá trị của biến đó sẽ được sử dụng thay thế.

Bạn có thể thử chọn một thư mục tạm thời liên quan đến thư mục chính của người dùng mà bạn có thể tạo.


Trong trường hợp của tôi, tôi nghĩ rằng đó là một giả định an toàn rằng các mặc định vẫn còn, nhưng điều này chắc chắn là tốt để ghi nhớ.
Pops

Một số chương trình như bash, gcc, inkscape hoặc lynx sử dụng TMPDIRbiến môi trường.
Cristian Ciupitu

@Ryan, Tại sao lại /tmpchủ trì biến temp?
Pacerier

0

Câu hỏi ban đầu là: Linux có thư mục tạm thời chuẩn không. Nếu vậy, mà là nó nằm ở đâu? (Các) thư mục tmp được tìm thấy tại: Hệ thống tệp / tmp & Hệ thống tệp / var / tmp Nội dung / tmp có thể bị xóa - nếu bạn biết các tệp / thư mục nào được yêu cầu / không yêu cầu bởi các ứng dụng khác nhau trên "theo yêu cầu" nền tảng. Các tệp không được yêu cầu thường là các tệp được tải xuống bởi một ứng dụng để tạo điều kiện cho chính ứng dụng đó vào thời điểm đó - do đó không cần thêm sau khi ứng dụng đã hoạt động. Không nên chạm vào thư mục / var / tmp.


1
Câu trả lời này không cung cấp nhiều thông tin hơn câu trả lời được chấp nhận, vì vậy nó khá vô dụng.
zx485
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.