Linux中的临时目录在哪里?
Linux有没有像Windows的C:\Temp
文件夹一样,有一个标准的临时目录供一般使用?如果有,它的位置在哪里?我找到了【一个关于用编程方式寻找tmp
目录的SO问题】(https://stackoverflow.com/questions/31068/how-do-i-find-the-temp-directory-in-linux),但我想提前在XML配置文件中设置一个临时位置。
Linux有没有像Windows的C:\Temp
文件夹一样,有一个标准的临时目录供一般使用?如果有,它的位置在哪里?我找到了【一个关于用编程方式寻找tmp
目录的SO问题】(https://stackoverflow.com/questions/31068/how-do-i-find-the-temp-directory-in-linux),但我想提前在XML配置文件中设置一个临时位置。
文件系统层次结构标准](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
这个变量应代表一个目录的路径名,供需要创建临时文件的程序使用。
你不能提前选择一个适用于任何Linux系统的临时目录名。事实上,你在Windows上也不能这么做。根据维基百科的【关于临时文件夹的文章】(http://en.wikipedia.org/wiki/Temporary_folder),Windows上的临时目录是由环境变量TEMP决定的。如果你只是在Windows系统上使用`c:\Temp`作为临时目录,而将TEMP设置为其他,那么任何使用你的XML文件来选择临时目录的程序都会失败。
简而言之,在我所知道的所有现代操作系统上,系统临时目录都是由环境决定的,包括Windows和任何类似UNIX的系统。设置一个单一的静态路径作为你的临时目录,只有在默认值没有被改变的情况下才会有效。
总之,典型的Linux系统中的标准临时目录是/tmp
。它相当于C:\Temp
,因为它只是默认的临时目录,不是通用的。即使/tmp
可用,如果用户(或系统)设置了TEMP环境变量,也应该使用该变量的值来代替。
你可以尝试选择一个相对于用户主目录的临时目录,你可以创建一个临时目录。