在大多数FHS系统上,都有一个/tmp文件夹和一个/var/tmp文件夹。两者的功能区别是什么?

评论

这是有关服务器故障的类似问题:/ 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

评论


我发现/ bin和/ usr / bin实际上是相同的(符号链接),这有点讽刺。 ;-)

–费利克斯·施瓦茨(Felix Schwarz)
16年4月5日在14:28

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

–指甲
16年5月5日在21:34

#2 楼

/tmp可能在重启时被清理,有时甚至被清理。重新启动之间保留/var/tmp

请参阅FHS上的Wikipedia文章。

评论


/ tmp甚至可以在退出进程后立即清除该进程创建的文件!

– osvein
2015年10月3日,12:14

#3 楼

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


以下目录应存在于兼容系统上,并且应按以下说明使用


/ tmp

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


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


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

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

原理

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

尽管/ tmp中存储的数据可能会以特定于站点的方式删除,但
建议将/ tmp中的文件和目录删除。
每当系统启动时都删除。

FHS根据历史先例和惯例惯例添加了此建议,但由于系统而没有要求
行政


POSIX未指定/ var / tmp。
FHS可以:


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

/ var / tmp中的文件和目录在系统运行时不得删除。已启动。尽管通常以特定于站点的方式删除存储在
/ var / tmp中的数据,但建议删除间隔的发生频率要低于
/ tmp。


评论


啊,我喜欢文档。现在我知道我知道了,为什么我相信我知道。我的认识论需求现在很满足。

– Stephen C
19-10-4在4:19

#4 楼

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

这些天来,默认情况下在/tmp上设置了更高的安全性,例如g+s,+t权限,但没有在/var/tmp上设置。此外,很少从RAM或交换挂载/var/tmp

评论


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

– sourcejedi
18年3月14日在19:23