Linux中的临时目录在哪里?

Linux是否有一个标准的临时目录供一般使用,像Windows的C:\Temp文件夹?如果有,它位于哪里?我找到了一个关于以编程方式找到tmp目录的SO问题,但我想提前在XML配置文件中设置一个临时位置。

解决办法

文件系统层次标准]FHS3.0版说:

/tmp : 临时文件

> /tmp目录必须提供给需要临时文件的程序使用。 临时文件。 > 程序不能假定/tmp中的任何文件或目录在调用之间被保留。 在程序的调用之间保留下来。 > 理由 > IEEE标准POSIX.1-2008列出了与上节类似的要求。 尽管存储在/tmp中的数据可以以特定地点的方式被删除,但它 建议在系统启动时,删除位于/tmp的文件和目录。 每当系统被启动时。 > FHS根据历史上的先例和常见的做法,增加了这一建议。 做法,但没有将其作为一项要求,因为系统管理不属于 不属于本标准的范围。 >

/var/tmp : 在系统重启之间保存的临时文件

> /var/tmp目录可供那些需要 需要在系统重启之间保留的临时文件或目录。 重新启动。因此,存储在/var/tmp中的数据比/var/tmp中的数据更持久。 /tmp中的数据。 > 当系统启动时,位于/var/tmp中的文件和目录不能被删除。 系统被启动时,不得删除位于/var/tmp中的文件和目录。尽管存储在/var/tmp中的数据通常会被 储存在/var/tmp中的数据通常是以特定地点的方式删除的,但我们建议删除 与`/tmp'相比,>的间隔较少。

另外,The Open Group Base Specifications Issue 7, Environment Variables中提到了以下内容:

`TMPDIR 这个变量应代表一个目录的路径名,供需要创建临时文件的程序使用。

评论(1)

是的,/tmp是供一般使用的。参见 herehere 关于文件系统层次标准。

/tmp/ 临时文件(也见/var/tmp)。在系统重启之间通常不会被保留。

在PDF中列出了一些更多的细节。

评论(0)

你不能提前选择一个对任何Linux系统都适用的临时目录名称。事实上,你在Windows上也不能这样做。根据维基百科的[关于临时文件夹的文章](http://en.wikipedia.org/wiki/Temporary_folder),Windows上的临时目录是由环境变量TEMP决定的。如果你在Windows系统上简单地使用`c:Temp`作为临时目录,并将TEMP设置为其他内容,那么任何使用你的XML文件来选择临时目录的程序都会失败

简而言之,系统临时目录是由我所知的所有现代操作系统的环境决定的,包括Windows和任何类似UNIX的系统。设置一个单一的静态路径作为你的临时目录,只有在默认值没有被改变的情况下才会有效。

总之,典型的Linux系统中的标准临时目录是/tmp。它相当于C:Temp,因为它是**的默认临时目录,而不是通用的。即使/tmp是可用的,如果用户(或系统)设置了TEMP环境变量,应该使用该变量的值来代替。

你可以尝试选择一个相对于用户主目录的临时目录,你可以创建这个目录。

评论(3)