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


Answers:


115

/tmp意味着使用寿命短的快速(可能很小)存储。许多系统的清理/tmp速度非常快-在某些系统上,它甚至作为RAM磁盘安装。/var/tmp通常位于物理磁盘上,更大,并且可以保存较长时间的临时文件。一些系统也可以清洁/var/tmp,但是不那么频繁。

另请注意/var/tmp,由于/var和/或/var/tmp可能是挂载点,因此在早期引导过程中可能不可用。因此,它/bin和和之间的区别有点可比/usr/bin。第一个在早期引导期间可用-后者在系统装入所有内容之后可用。因此,大多数引导脚本将使用/tmp而不是/var/tmp临时文件。

Linux上另一个(即将出现的)临时文件位置是/dev/shm


4
我发现有些讽刺意味,/bin并且/usr/bin这些天实际上是相同的(符号链接)。;-)
Felix Schwarz

2
@Felix尚未在所有发行版上。但是Linux正朝着这种方向发展。可能是因为磁盘越来越大。
尼尔斯(Nils)


15

它们具有相同的目的和功能。UNIX / Linux的每个版本都将以不同的方式处理这些目录。从历史上看,在基于RAM /交换的文件系统问世之前,您就拥有了无磁盘系统,其中//usr文件系统是只读的,而/var(变量)则是可读写的。该/tmp名称将是的符号链接/var/tmp。后来,无盘系统变得过时,磁盘空间变得更便宜(具有更大的根文件系统),并且允许从内存而不是从磁盘挂载文件系统的技术。该/var/tmp目录已过时,但某些程序仍在使用它。

如今,默认情况下会在权限上设置更多安全性/tmp,例如g+s,+t权限,而不是/var/tmp。此外,/var/tmp很少从RAM或交换挂载。


在我的debian和fedora系统上,/ tmp和/ var / tmp具有相同的模式a+rwx+t-和no g+s
sourcejedi

12

POSIX基本规范,关于/ tmp的第7期

以下目录应存在于符合标准的系统上,并应按以下说明使用:

/ tmp

该目录可用于需要放置临时文件的应用程序。应允许应用程序在此目录中创建文件,但不得假定此类文件在应用程序调用之间被保留。

/ tmp上的文件层次结构标准2.3

/ tmp目录目录必须为需要临时文件的程序提供。

程序不得假定在两次调用之间都保留/ tmp中的任何文件或目录。

基本原理

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

尽管可以以特定于站点的方式删除/ tmp中存储的数据,但是建议在每次引导系统时都删除/ tmp中的文件和目录。

FHS在历史上的先例和惯例的基础上添加了此建议,但由于系统管理不在本标准范围之内,因此没有要求。

POSIX没有指定/ var / tmpFHS确实

/ var / tmp中的目录为需要临时文件或在系统重启之间保存目录的程序可用。因此,/ var / tmp中存储的数据比/ tmp中的数据更具持久性。

引导系统时,不得删除/ var / tmp中的文件和目录。尽管通常以特定于站点的方式删除/ var / tmp中存储的数据 ,但是建议删除间隔比 / tmp少


啊,我喜欢文档。现在我知道我知道了,为什么我相信我知道。我的认识论需求现在很满足。
Stephen C
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.