mtree(8) 和 -O 的使用

mtree(8) 和 -O 的使用

我正在尝试为植根于 的文件创建规范/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.您无法指定目录,但您需要那里的完整路径列表(据我所知,没有重复项)。

相关内容