在大多数FHS系统中,有一个/tmp
文件夹,还有一个/var/tmp
文件夹。两者的功能区别是什么?
答案1
/tmp
意味着快速(可能很小)的存储但寿命很短。许多系统清理速度/tmp
非常快 - 在某些系统上它甚至被安装为 RAM 磁盘。/var/tmp
通常位于物理磁盘上,较大并且可以保存临时文件更长时间。有些系统也可以清理/var/tmp
,但频率较低。
另请注意,/var/tmp
在早期引导过程中可能不可用,因为/var
和/或/var/tmp
可能是安装点。因此,它有点类似于/bin
和之间的差异/usr/bin
。第一个在早期启动期间可用 - 后者在系统安装完所有内容后可用。所以大多数引导脚本将使用/tmp
而不是/var/tmp
临时文件。
Linux 上用于存储临时文件的另一个(即将出现的)位置是/dev/shm
。
答案2
/tmp
可能(有时确实)在重新启动时被清除。/var/tmp
在重新启动之间保留。
答案3
以下目录应存在于合格系统上,并应按所述使用:
/tmp
可供需要创建临时文件的应用程序使用的目录。应允许应用程序在此目录中创建文件,但不应假设此类文件在应用程序的调用之间保留。
这/tmp目录必须可供需要临时文件的程序使用。
程序不得假设任何文件或目录/tmp在程序调用之间保留。
基本原理
IEEE 标准 P1003.2(POSIX,第 2 部分)提出了与上一节类似的要求。
虽然数据存储在/tmp可能会以特定于站点的方式删除,建议位于/tmp每当系统启动时都会被删除。
FHS 根据历史先例和惯例添加了此建议,但并未将其作为要求,因为系统管理不在本标准的范围内。
POSIX 没有指定/var/tmp。 FHS 确实如此:
这/var/tmp目录可供需要在系统重新启动之间保留的临时文件或目录的程序使用。因此,数据存储在/var/tmp比中的数据更持久/tmp。
文件和目录位于/var/tmp系统启动时不得删除。虽然数据存储在 /var/tmp通常以特定于站点的方式删除,建议删除的频率低于 /tmp。
答案4
它们具有相同的目的和功能。每个版本的 UNIX/Linux 都会以不同的方式处理这些目录。从历史上看,在基于 RAM/交换的文件系统出现之前,您拥有无磁盘系统,其中/
文件/usr
系统是只读的,/var
(变量)是读写的。该/tmp
名称将是到 的符号链接/var/tmp
。后来,无磁盘系统过时了,磁盘空间变得更便宜(拥有更大的根文件系统),并且技术允许从内存而不是磁盘安装文件系统。该/var/tmp
目录已经过时了,但仍然被某些程序使用。
如今,默认情况下在 上设置了更多安全性/tmp
(例如g+s,+t
权限),但在 上却没有/var/tmp
。此外,/var/tmp
很少从 RAM 或交换区安装。