Updatedb 无法识别的选项 '--localpaths='

iyr*_*rin 4 command-line updatedb

我正在尝试更新我创建的单个目录。我正在使用,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='
Run Code Online (Sandbox Code Playgroud)

来自man updatedb

   --localpaths='path1 path2...'
          Non-network directories to put in the database.  Default is /.
Run Code Online (Sandbox Code Playgroud)

为什么在--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
Run Code Online (Sandbox Code Playgroud)

编辑:我已经成功使用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 "/")
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 5

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

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

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


归档时间:

查看次数:

887 次

最近记录:

9 年,4 月 前