updateb数据库在哪里?


14

我想清除并删除locate及其数据库的所有条目。

我试过了

apt-get purge locate

rm /etc/updatedb*

但是数据库也消失了吗?
debian squeeze上的updatedb数据库在哪里?

我也想手动删除它,所以我可以干净地重新安装它

Answers:


12

man updatedb

搜索“文件”

我的说:

FILES
       /etc/updatedb.conf
              A configuration file.  See updatedb.conf(5).

       /var/lib/mlocate/mlocate.db
              The database updated by default.

1
那是mlocate,而不是locate。虽然/ var / lib / locate对于locate来说并不是一个坏的猜测。
Dennis Kaarsemaker

1
我正在尝试提供一般建议以及在我的系统上遵循上述建议的结果。
ptman

2
哦,看来mlocate是Debian上的标准定位。
ptman

未安装mlocate,也未定位
rubo77

11

无需反编译可执行文件!只是请问“定位” :-)

对于更新的b / locate(GNU findutils)版本4.6.0,请尝试调用

locate --statistics

对于我(在cygwin上),这会产生一些像

Database /var/locatedb is in the GNU LOCATE02 format.
Database was last modified at 2017:03:13 22:44:31.849172100 +0100
Locate database size: 6101081 bytes
All Filenames: 202075
File names have a cumulative length of 22094021 bytes.
Of those file names,

    2591 contain whitespace,
    0 contain newline characters,
    and 20 contain characters with the high bit set.
Compression ratio 72.39% (higher is better)


6

我更喜欢跟踪流程,因为它将直接带您到那里。如果您没有手册页,它将与发行版无关。

# strace updatedb 2>&1 |grep ^open|grep db

open("/etc/updatedb.conf", O_RDONLY)    = 3
open("/var/lib/mlocate/mlocate.db", O_RDWR) = 3
open("/var/lib/mlocate/mlocate.db.bUUaw4", O_RDWR|O_CREAT|O_EXCL, 0600) = 4

1

[2017年修订]:参见上述答案:找到--statistics作品。

如果您有/etc/updatedb.conf,则可以在其中查找。我不。您可以阅读手册页中的locate,其中指出默认位置为/ var / cache / locate / locatedb。我的不在。您可以使用自身定位来搜索名为“ updatedb”或“ locatedb”的文件。我在Windows 7上使用Cygwin。


如果您要搜索mlocate.db
rubo77

1
@ phil-goetz无需反编译。如果安装了strace,则可以使用一个衬套获得确切的位置:$ sudo strace updatedb 2>&1 | grep -o "^open.*O_RDWR.*"
Cengiz能

@Cengiz:聪明!我的更新数据库只是/ var / locatedb。
菲尔·格茨
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.