我像这样运行updatedb:updatedb --localpaths="/a /b"
/a
是可移动驱动器。/b
是本地硬盘。尽管/a
我并不总是可以访问 ,但我经常想运行locate
以查找是否有某个文件(基于我上次运行的时间updatedb
)。
问题是,如果我updatedb
在未插入的情况下运行,则会收到错误消息:
/usr/bin/find: '/a': No such file or directory
数据库获取有关 的最新信息/b
,但会删除/a
的现有数据。有没有办法在没有插入/a
时保留数据?/a
updatedb
我认为这可能通过多个数据库实现,一个/a
用于/b
. /a
然后脚本可以在决定是否插入时检查是否插入updatedb
。
但是这两个命令的手册页都假设我知道的比我知道的多得多(例如,做什么FINDOPTIONS
),所以我希望有一个更简单的解决方案来解决这个问题。
我不了解 Windows 上的 Linux,也不了解 GNU 版本
locate
,但你应该能够做你想做的事。这里有更长的手册版本。updatedb --localpaths="/a /b"
用2 个命令替换你的单曲,/dir/mydb
您要保存数据库的文件的完整路径名在哪里。进行定位时,将环境变量设置
LOCATE_PATH
为/dir/mydb::
. 原则上::
应该意味着使用标准db。如果
::
不起作用,您也许可以通过运行来获取标准 db 的文件名updatedb --help
。例如,它可能会说,默认值为/usr/local/var/locatedb
. 然后就可以设置了LOCATE_PATH=/dir/mydb:/usr/local/var/locatedb
。您还可以使用该-d
选项来locate
提供此 dbs 列表。