/tmp 和 /var/tmp 有什么区别?

/tmp 和 /var/tmp 有什么区别?

在大多数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在重新启动之间保留。

维基百科关于 FHS 的文章

答案3

POSIX 基本规范,第 7 期/tmp:

以下目录应存在于合格系统上,并应按所述使用:

/tmp

可供需要创建临时文件的应用程序使用的目录。应允许应用程序在此目录中创建文件,但不应假设此类文件在应用程序的调用之间保留。

文件层次结构标准 2.3/tmp:

/tmp目录必须可供需要临时文件的程序使用。

程序不得假设任何文件或目录/tmp在程序调用之间保留。

基本原理

IEEE 标准 P1003.2(POSIX,第 2 部分)提出了与上一节类似的要求。

虽然数据存储在/tmp可能会以特定于站点的方式删除,建议位于/tmp每当系统启动时都会被删除。

FHS 根据历史先例和惯例添加了此建议,但并未将其作为要求,因为系统管理不在本标准的范围内。

POSIX 没有指定/var/tmpFHS 确实如此:

/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 或交换区安装。

相关内容