updatedb 数据库在哪里?

rub*_*o77 16 linux

我想通过清除所有 locate 条目及其数据库来删除。

我试过

apt-get purge locate
Run Code Online (Sandbox Code Playgroud)

rm /etc/updatedb*
Run Code Online (Sandbox Code Playgroud)

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

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

ptm*_*man 14

man updatedb

搜索“文件”

我的 说:

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

       /var/lib/mlocate/mlocate.db
              The database updated by default.
Run Code Online (Sandbox Code Playgroud)

  • 哦,似乎 mlocate 是 Debian 上的标准定位。 (2认同)

小智 12

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

对于 updatedb/locate (GNU findutils) 版本 4.6.0 尝试调用

locate --statistics
Run Code Online (Sandbox Code Playgroud)

对我来说(在 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)
Run Code Online (Sandbox Code Playgroud)


rub*_*o77 10

在 debian 上,locate 数据库默认存储在

/var/cache/locate/locatedb
Run Code Online (Sandbox Code Playgroud)

如果您mlocate用作搜索索引器:

mlocate 数据库存储在

/var/lib/mlocate/mlocate.db
Run Code Online (Sandbox Code Playgroud)

请参阅:如何查看 updatedb 数据库内容,然后排除某些文件/路径?


Jer*_*nes 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
Run Code Online (Sandbox Code Playgroud)