2011-09-06 19:43:10 +0000 2011-09-06 19:43:10 +0000
65
65

Linux中的临时目录在哪里?

Linux有没有像Windows的C:\Temp文件夹一样,有一个标准的临时目录供一般使用?如果有,它的位置在哪里?我找到了【一个关于用编程方式寻找tmp目录的SO问题】(https://stackoverflow.com/questions/31068/how-do-i-find-the-temp-directory-in-linux),但我想提前在XML配置文件中设置一个临时位置。

答案 (5)

97
97
97
2011-09-06 20:09:43 +0000

文件系统层次结构标准](http://refspecs.linuxfoundation.org/fhs.shtml) 3.0版说:

/tmp : 临时文件

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

程序不能假设 /tmp 中的任何文件或目录会在程序调用之间被保留。

理由

IEEE 标准 POSIX.1-2008 列出了与上节类似的要求。虽然存储在 /tmp 中的数据可以根据站点的具体情况进行删除,但建议每当系统启动时就删除位于 /tmp 中的文件和目录。

FHS 根据历史先例和常见做法增加了这项建议,但没有将其作为一项要求,因为系统管理不在本标准的范围内。

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

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

位于 /var/tmp 的文件和目录在系统启动时不得删除。虽然存储在 /var/tmp 中的数据通常是以特定站点的方式删除的,但建议删除的频率低于 /tmp

另外, 《开放组基础规范》第7期,环境变量中提到了以下内容。

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

11
11
11
2017-03-28 17:56:59 +0000

这是一个老问题了,所以今天又有了一个选择。依赖于systemd的Linux发行版(这是90%的发行版)现在可以使用$XDG_RUNTIME_DIR目录 XDG基础目录规范)来存储某些类型的临时文件。它一般位于/run/user/$uid。这是一个每个用户都有700权限的目录,可以提供更好的安全性。这是一个tmpfs的挂载,它提供了性能。tmpfs的缺点是只能用来保存小文件和套接字。

我把它看成是/tmp/var/run的结合。

10
10
10
2011-09-06 20:13:09 +0000

是的,/tmp 是一般用途。参见 这里 这里 关于文件系统层次结构标准。

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

PDF中列出了更多细节。

2
2
2
2011-09-06 20:23:58 +0000

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

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

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

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

0
0
0
2019-07-27 13:18:41 +0000

最初的问题是。Linux是否有一个标准的临时目录 如果有,它在哪里?临时文件夹的位置是:文件系统/tmp和文件系统/var/tmp。文件系统/tmp和文件系统/var/tmp 如果你知道哪些文件/文件夹是各种应用程序需要的/不需要的,那么/tmp的内容可以被删除。不需要的文件通常是应用程序下载的那些文件,以方便应用程序本身在这一点上–因此在应用程序执行后不再需要。/var/tmp文件夹完全不应该被触及。