我正在尝试为植根于 的文件创建规范/etc
,但是,我只对路径/etc/rc.conf.d
和文件感兴趣/etc/rc.conf.local
。我正在使用 FreeBSD-12/etc
并且可以成功创建规范/etc/rc.conf.d
:
mtree -cx -K uname,gname,sha512 -p /etc/rc.conf.d/ -R uid,gid > /tmp/etc-conf-d.mtree
我想在参数/etc
中使用-p
,但我想排除文件列表。也许我误解了手册页,我认为-O
这将允许我提供一个文件/路径列表来创建规范。
来自 mtree(8) 手册页:
-O onlypaths 仅包含此路径名列表中包含的文件。
但是如果我运行:
mtree -cx -K uname,gname,sha512 -p /etc/ -O /etc/rc.conf.d/ -R uid,gid > /tmp/etc-conf-d.mtree
这会生成一个带有标头且根本没有路径规范的规范文件。我做错了什么,或者我使用了不正确的工具来完成这项工作?
答案1
好吧,我查看了来源来解决这个问题,因为手册页没有提供使这项工作真正必要的详细信息。我发现了以下情况。
该选项-O
必须是包含路径列表的文本文件的路径(请注意,“路径”在术语上与“目录”不同)。每个路径都在此文件中占一行,并且需要以前缀开头./
,其中.
隐式表示当前目录,即您使用 指定的目录-p
。
似乎选项给出的文件列表-O
是用像find
.您无法指定目录,但您需要那里的完整路径列表(据我所知,没有重复项)。