f¶若指定的文件不存在,则创建它,否则什么也不做。
若设置了"参数"字段并且并且指定的文件不存在,则将其内容写入指定的文件。不追踪软连接。F¶若指定的文件不存在,则创建它,否则清空已有文件。
若设置了"参数"字段,则将其内容写入指定的文件。不追踪软连接。w¶若指定的文件存在,则将"参数"字段的内容写入该文件,否则什么也不做。
注意:
(1)不会在"参数"字段内容的末尾添加额外的换行符。
(2)可以在"参数"字段中使用C语言风格的转义字符。
(3)可以在"路径"字段中使用shell风格的通配符。
(4)追踪软连接。d¶创建指定的目录并赋于指定的User/Group与权限。如果指定的目录已经存在,那么仅调整User/Group与权限。
如果指定了"寿命"字段,那么该目录中的内容将遵守基于时间的清理策略。D¶与 d 类似,
但是如果使用了 --remove 选项,那么将会清空目录中的所有内容。e¶调整已存在目录的User/Group与权限,
并遵守基于时间的清理策略。
可以在"路径"字段中使用shell风格的通配符。
如果指定了"寿命"字段,那么该目录中的内容将遵守基于时间的清理策略。
如果"寿命"字段的值为 "0" ,
那么每次运行 systemd-tmpfiles --clean 命令时,都会无条件清空该目录。
要想让此类型有效,必须至少明确设置 权限, 属主, 属组, 寿命 字段之一。
作为一个例外,当与 ! 一起使用时,
无效行可能就变得有意义了(参见后面的例子)。v¶如果指定的路径不存在,并且该路径位于一个Btrfs子卷中,
那么按照指定的路径创建子卷。
否则,创建一个普通的目录(与 d 一样)。
仅对Btrfs文件系统有意义。
此处创建的子卷不会被分配给任何 higher-level 配额组(quota group),
如果想要创建简单的配额组层次关系,那么应该使用下面的 q
或 Q 。q¶与 v 一样,创建一个子卷或目录,
但不同之处在于,将创建的子卷分配给与父卷相同的 higher-level 配额组(quota group)。
这样可以确保作用于父卷的 higher-level 配额组可以包含此处创建的子卷。
在非Btrfs文件系统上与 d 等价。
只要子卷已存在,无论该子卷是否已经分配有配额组(quota group),
都不会修改任何现有的配额层次关系。参见下面的 Q 以及 btrfs-qgroup(8)
手册,以了解更多关于btrfs的配额组(quota group)的概念。Q¶与 v 一样,创建一个子卷或目录,但不同之处在于,
将创建的子卷分配给一个新叶子配额组。不同于 q 之处在于,
并不直接复用父卷的 higher-level 配额组(quota group),
而是首先找到父卷的最低级非叶子配额组(也就是倒数第二级配额组),
然后在此配额组与最末端的叶子配额组之间,插入一个level值减一的"中间配额组",
并且与新建的子卷共享同一个ID。
如果父卷不存在 higher-level 配额组,那么插入一个level值为255且ID与新建子卷相同的"中间配额组",
并且这个新建的"中间配额组"将被指定为父卷的 higher-level 配额组(quota group),
同时,新建子卷的叶子配额组也会分配给它(中间配额组)。
单就新建子卷自身而言,q 与 Q 在实际效果上并无不同,
但是通过插入一个新的 higher-level 配额组,
Q 可以实现对该新建子卷以及未来创建在该子卷之下的下级子卷进行统一的配额限制。
这样,在通过 q 与 Q 创建子卷的同时,也一起实现了一颗"配额子树"。
每一个 Q 创建的子卷都将拥有一个自己专属的配额层次结构(配额树),可用于容纳将来创建的下级子卷。
每一个 q 创建的子卷都没有自己专属的配额树,
其自身会被添加到
直属父卷所属的配额树中。
Q 通常用于
/home 或 /var/lib/machines 这样的目录,
其特点是:不但需要包含多个下级子卷,而且需要将所有下级子卷视为一个整体进行配额限制。
q 通常用于
/var 或 /var/tmp 这样的目录,
其特点是:
要么不需要包含下级子卷,要么不需要将所有下级子卷视为一个整体进行配额限制。
与 q 一样,Q 也不会改变任何已存在子卷的配额层次关系,
无论该子卷是否已经分配有配额组(quota group)。p,p+¶若指定的管道(FIFO)不存在,
则创建它,否则什么也不做。
后缀 + 表示:若指定的路径已存在一个非管道文件,
则先删除此文件再创建指定的管道文件。L,L+¶若指定的软连接不存在,则创建它,否则什么也不做。
后缀 + 表示:
若指定的路径已存在一个非软连接文件或目录,
则先删除此文件或目录再创建指定的软连接。
若"参数"字段为空,
那么将创建一个指向
/usr/share/factory/ 目录中同名文件的软连接。
注意,软连接的User/Group与权限将被忽略。c,c+¶若指定的字符设备不存在,
则创建它,否则什么也不做。
后缀 + 表示:
若指定的路径已存在一个非字符设备的文件,
则先删除此文件再创建指定的字符设备。
因为udev并不管理运行时创建的静态设备节点,
所以建议在末尾加上"!",以确保仅在系统启动期间才创建此静态设备节点。b,b+¶若指定的块设备不存在,
则创建它,否则什么也不做。
后缀 + 表示:
若指定的路径已存在一个非块设备的文件,
则先删除此文件再创建指定的块设备。
因为udev并不管理在运行时创建的静态设备节点,
所以建议在末尾加上"!",以确保仅在系统启动期间才创建此静态设备节点。C¶如果指定的文件或目录不存在或目录为空,
那么递归的从"参数"字段所指定的文件或目录复制,
否则什么也不做。
注意,如果下级子目录存在且非空,那么将会跳过该子目录的复制。
若"参数"字段为空,
那么将从 /usr/share/factory/ 目录中
递归的复制同名文件或目录。
不追踪软连接。x¶在根据"寿命"字段清理过期文件时,
忽略指定的路径及该路径下的所有内容。
可以在"路径"字段中使用shell风格的通配符。
注意,
这个保护措施对 r 与 R
无效。X¶在根据"寿命"字段清理过期文件时,
仅忽略指定的路径自身而不包括该路径下的其他内容。
可以在"路径"字段中使用shell风格的通配符。
注意,
这个保护措施对
r 与
R
无效。r¶若指定的文件或目录存在,
则删除它。
不可用于非空目录。
可以在"路径"字段中使用shell风格的通配符。
不追踪软连接。R¶若指定的文件或目录存在,则递归的删除它。
可用于非空目录。
可以在"路径"字段中使用shell风格的通配符。
不追踪软连接。z¶若指定的文件或目录存在,
则仅设置其自身的访问权限、属主、属组、重置SELinux安全上下文。
可以在"路径"字段中使用shell风格的通配符。不追踪软连接。Z¶若指定的文件或目录存在,
则递归的设置其访问权限、属主、属组、重置SELinux安全上下文。
可以在"路径"字段中使用shell风格的通配符。
不追踪软连接。t¶若指定的文件或目录存在,
则仅设置其自身的SMACK标签。
可以在"路径"字段中使用shell风格的通配符。
不追踪软连接。T¶若指定的文件或目录存在,
则递归的设置其SMACK标签。
可以在"路径"字段中使用shell风格的通配符。
不追踪软连接。h¶若指定的文件或目录存在,则仅调整其自身的属性。
可以在"路径"字段中使用shell风格的通配符。
"参数"字段的格式是 [+-=][aAcCdDeijsStTu] ,
具体解释如下:
+ 前缀表示添加属性(这是默认值);
- 前缀表示去除属性;
= 前缀表示设置属性(但对 "aAcCdDeijsStTu" 范围之外的其他属性没有影响);
而后缀字母
"aAcCdDeijsStTu" 则用于表示各种属性,
其含义与
chattr(1) 手册里的解释一致。
注意,
将"参数"字段设为一个单独的
=(无后继字母)
表示重置所有 "aAcCdDeijsStTu"
代表的属性。
不追踪软连接。H¶若指定的文件或目录存在,则递归的调整其属性。
可以在"路径"字段中使用shell风格的通配符。
不追踪软连接。"参数"字段的语法与 h 完全相同。a,a+¶若指定的文件或目录存在,
则仅设置其自身的访问控制列表(POSIX ACL)。
可以在"路径"字段中使用shell风格的通配符。
后缀 +
表示将指定的项添加到已有的访问控制列表中。
除非基本权限已经存在或被明确指定,
否则 systemd-tmpfiles
将会自动根据"权限","属主","属组"字段添加所需的基本权限。
如果没有明确指定访问控制列表或者访问控制列表已经存在,
那么将会叠加上掩码。
不追踪软连接。A,A+¶若指定的文件或目录存在,则递归的设置访问控制列表(POSIX ACL)。
其他与 a/a+ 完全相同。
不追踪软连接。