Linux系统下的/tmp目录
/tmp目录是系统级的临时文件目录,通常位于根目录下的“/tmp”或者“/var/tmp”,用来存储临时文件。- 它在系统启动时被创建,用于存放临时文件,这些文件
在系统重启后会被清除。 - 使用以下命令查看具体位置:
echo $TMPDIR
一、tmp目录的作用
/tmp目录用于存储临时文件,这些文件通常是由操作系统或应用程序创建的。这些文件可以是日志文件、临时缓存文件、程序临时文件、打印队列文件等。它们在使用后很快就会被删除,因此/tmp目录通常保持相对较小的大小。
二、tmp目录的权限
在Linux中,tmp目录的权限通常设置为777(rwxrwxrwx),这意味着任何用户都可以访问和修改该目录中的文件。这是为了方便临时文件的创建和删除。然而,由于/tmp目录通常包含敏感信息,因此一些系统管理员可能会更改其权限以提高安全性。
三、tmp目录的使用方法
/tmp目录在Linux中被广泛使用。下面是/tmp目录的几个主要用途:
-
缓存:/tmp目录通常用于存储临时缓存文件,这些文件可以加速某些操作。例如,浏览器会将下载的文件保存到/tmp目录中,以便更快地访问这些文件。
-
打印队列:打印服务通常会将打印任务存储在/tmp目录中。这些文件在打印完成后会自动删除。
-
应用程序临时文件:某些应用程序需要在运行期间创建临时文件。例如,视频编辑器需要创建临时文件以存储正在编辑的视频文件。
-
日志文件:某些程序会将日志文件保存在/tmp目录中。这些日志文件通常包含程序运行期间的信息,例如错误消息或调试信息。
-
其他:/tmp目录还可用于其他临时文件的存储,例如备份文件、邮件附件等。
四、配置文件tmp.conf
/usr/lib/tmpfiles.d/tmp.conf是一个在Linux系统中使用的临时文件配置文件,用于控制临时文件的创建、管理和清理,通常会定义一些规则来创建和管理临时文件。例如,可以指定在系统启动时创建一些临时文件夹,并定义这些文件夹的路径、权限和清理策略等。这样,当系统重新启动时,这些临时文件夹就会根据配置文件的要求自动创建,并在满足条件时被清理掉。
cat /usr/lib/tmpfiles.d/tmp.conf文件内容如下:

配置规则说明:
<type代表类型>,<path代表路径>,<mode代表权限>,<UID用户>, <GID用户组>,<AGE生存时间>,<Argument代表附加参数>
v /tmp 1777 root root 10d #如/tmp目录不存在,将自动创建,自动清理/tmp目录下10天前的临时文件
v /var/tmp 1777 root root 30d #如/var/tmp目录不存在,将自动创建,自动清理/var/tmp目录下30天前的临时文件

常见的type类型有:
| 类型 | 说明 |
|---|---|
| f | 如果文件不存在,则创建该文件。如果给出了参数参数,并且文件还不存在,它将被写入文件。不遵循符号链接。 |
| F | 创建或截断文件。如果给出了参数参数,它将被写入文件。不遵循符号链接。 |
| d | 创建目录。如果指定了模式和所有权,将进行调整。如果指定了age参数,则此目录的内容将进行基于时间的清理。 |
| D | 类似于d,但是在使用——remove时,目录的内容将被删除 |
| v | 如果路径还不存在,则创建子卷,文件系统支持子卷(btrfs),并且系统本身安装在子卷中(具体来说:根目录/本身就是子卷)。否则,创建一个普通目录,方法与d相同。 |
| x | 在清理过程中忽略路径。使用此类型可以排除由Age参数控制的清理路径。注意,这种类型的行不影响r或r行的效果。这种类型的行可以接受 |
| X | 在清理过程中忽略路径。使用此类型可以排除由Age参数控制的清理路径。与x不同的是,如果path是一个目录,此参数将不排除内容,而只排除目录本身。 |
| r | 删除存在的文件或目录。这可能不用于删除非空目录,使用R。这种类型的行接受shell样式的glob来代替正常的路径名。不遵循符号链接 |
| R | 递归地删除路径及其所有子目录(如果它是目录)。这种类型的行接受shell样式的glob来代替正常的路径名。不遵循符号链接。 |
| z | 调整访问模式、用户和组所有权,并恢复文件或目录的SELinux安全上下文(如果存在)。这种类型的行接受shell样式的glob来代替正常的路径名。不遵循符号链接。 |
| Z | 递归地设置访问模式、用户和组所有权,并恢复文件或目录(如果存在)及其子目录和其中包含的文件(如果适用)的SELinux安全上下文。 |
| t | 设置扩展属性。这种类型的行接受shell样式的glob来代替正常的路径名。这对于设置SMACK标签很有用。不遵循符号链接。 |
| T | 递归地设置扩展属性。这种类型的行接受shell样式的glob来代替正常的路径名。这对于设置SMACK标签很有用。不遵循符号链接。 |
| … | 更多选项使用命令 man 5 tmpfile 查看具体类型使用方法。 |
五、tmpfs文件系统
tmpfs是一种基于内存的文件系统,它可以直接在内存中创建和删除文件,不需要通过磁盘进行存取。由于tmpfs是基于内存的,因此它的读写速度非常快,但是一旦系统断电,所有存储在tmpfs中的文件都会消失。
通过df -h命令查看tmp目录是否是tmpfs文件格式。
