Updatedb 无法识别选项“--localpaths=”

Updatedb 无法识别选项“--localpaths=”

我正在尝试更新我创建的单个目录。我正在使用updatedb,因此可以通过命令找到它locate

使用的命令:
updatedb --localpaths='/frodo/lib/modules/3.12.3-031203-generic/kernel'

输出:
updatedb: unrecognized option '--localpaths=/frodo/lib/modules/3.12.3-031203-generic/kernel'

与以下结果相同:

updatedb --localpaths=  
updatedb: unrecognized option '--localpaths='

man updatedb

   --localpaths='path1 path2...'
          Non-network directories to put in the database.  Default is /.

--localpaths当明确指定为选项时,为什么会出现此错误?


系统信息:

updatedb --version
updatedb (mlocate) 0.26
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.

This program is provided with NO WARRANTY, to the extent permitted by law.

lsb_release -a
LSB Version:  core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:
core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-
noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID:   Ubuntu
Description:  Ubuntu 13.10
Release:  13.10
Codename: saucy

uname -r
3.12.3-031203-generic

编辑:我已经成功使用updatedb -U /frodo/lib/modules/3.12.3-031203-generic/kernel,但我仍然想知道为什么--localpaths手册中的 不被识别。

这个替代选项不在手册中,但可以在updatedb -h.

   -U, --database-root PATH       the subtree to store in database 
(default "/")

答案1

updateb 有两种流行的实现。其中之一是来自 GNU findutils。另一个是移动定位。它们支持不同的命令行选项和配置文件,特别是对于updatedb程序。

看来updatedb您系统上的命令是来自 mlocate 的命令,但手册页是来自 findutils 的命令。通常,Ubuntu有一个系统(继承自Debian)称为备择方案这保证了当一个程序有多个实现时,程序的选择和手册页的选择是一致的。但是,在这种情况下,updatedb手册页不会记录在替代项列表中,只有locate可执行文件、locate手册页和updatedb可执行文件会记录在替代项列表中。这是因为updatedb手册页位于不同的部分:findutils 将其放在第 1 部分,而 mlocate 将其放在第 8 部分。因此man 1 updatedb显示updatedb(1)手册页,因为它是第 1 部分中唯一的updatedb手册页。并man updatedb显示第 1 部分中的手册页因为那是第一个匹配的部分。可以说,这是 mlocate 中的一个打包错误:findutils 和 mlocate 包维护者应该同意将手册页放在updatedb同一部分中,并且 mlocate 应该为其手册页声明一个替代方案;由于 mlocate 放入updatedb/usr/bin,它的手册页应该在第 1 节中。就目前情况而言,您可以使用 来查看 mlocate 的手册updatedbman 8 updatedb

mlocate 的实现updatedb没有与 findutils 的完全相同的选项--localpaths。您可以创建一个单独的数据库并使用选项指定它包含的子树--database-root,或者运行updatedb --database-root / --database-root /frodo/lib/modules/3.12.3-031203-generic/kernel.

相关内容