evencoil Asked: 2011-02-24 06:19:59 +0800 CST2011-02-24 06:19:59 +0800 CST 2011-02-24 06:19:59 +0800 CST 如何更改 /var/lib/mlocate.db 的存储位置? 772 这对我来说是一个大文件,我想把它放在与我的根分区不同的硬盘上。 想补充一点:我希望这适用于更新数据库的自动运行。我检查了 updatedb.conf 的手册页,但看不到任何可以让我更改路径的内容。 disk-usage 4 个回答 Voted theist 2011-02-24T06:25:23+08:002011-02-24T06:25:23+08:00 您可以检查您的 updatedb 版本是否支持--output FILE参数并将其设为 bash 会话的别名并在您的 cron 作业中指定它。 您还必须使用带有--database FILE参数的定位 如 evencoil 所述,不可能使用符号链接,因为 updatedb 会在每次调用时重新创建文件。 Best Answer arrange 2011-02-24T11:15:51+08:002011-02-24T11:15:51+08:00 在 Ubuntu 中,默认数据库位置被编译成mlocate二进制文件,因此很难更改它。您可以设置 LOCATE_PATH 变量,但其中提到的数据库文件将仅用作附加数据库,而不是默认数据库。 .db作为一种解决方法 - 您的文件有多大?在我的系统上它是 5 MiB,这是一个真正的问题吗?修剪一些不需要搜索的路径locate(请参阅 参考资料man updatedb.conf)并以这种方式使文件更小不是更容易吗? Diomidis Spinellis 2017-04-28T11:02:27+08:002017-04-28T11:02:27+08:00 尽管创建链接mlocate.db不起作用,但现代系统(例如 Debian jessie)将数据库存储在一个目录中,您可以轻松地通过符号链接到另一个位置。因此,您可以将/var/lib/mlocate目录链接到另一个驱动器,如下所示。 test -d /var/lib/mlocate && rm -rf /var/lib/mlocate && mkdir /large-disk/mlocate && ln -s /large-disk/mlocate /var/lib/mlocate && echo OK Ward Muylaert 2011-02-24T13:12:38+08:002011-02-24T13:12:38+08:00 想到只使用符号链接。 移动mlocate.db到您的另一个驱动器,假设它以/some/path/mlocate.db. 转到正确的文件夹 cd /var/lib 创建符号链接 ln -s /some/path/mlocate.db mlocate.db 请注意,我没有对此进行测试,但它背后的推理对我来说听起来足够正确。如果它没有按预期运行,只需通过删除符号链接并将实际文件移回其位置来恢复您的操作。
您可以检查您的 updatedb 版本是否支持
--output FILE
参数并将其设为 bash 会话的别名并在您的 cron 作业中指定它。您还必须使用带有
--database FILE
参数的定位如 evencoil 所述,不可能使用符号链接,因为 updatedb 会在每次调用时重新创建文件。
在 Ubuntu 中,默认数据库位置被编译成
mlocate
二进制文件,因此很难更改它。您可以设置 LOCATE_PATH 变量,但其中提到的数据库文件将仅用作附加数据库,而不是默认数据库。.db
作为一种解决方法 - 您的文件有多大?在我的系统上它是 5 MiB,这是一个真正的问题吗?修剪一些不需要搜索的路径locate
(请参阅 参考资料man updatedb.conf
)并以这种方式使文件更小不是更容易吗?尽管创建链接
mlocate.db
不起作用,但现代系统(例如 Debian jessie)将数据库存储在一个目录中,您可以轻松地通过符号链接到另一个位置。因此,您可以将/var/lib/mlocate
目录链接到另一个驱动器,如下所示。想到只使用符号链接。
mlocate.db
到您的另一个驱动器,假设它以/some/path/mlocate.db
.转到正确的文件夹
创建符号链接
请注意,我没有对此进行测试,但它背后的推理对我来说听起来足够正确。如果它没有按预期运行,只需通过删除符号链接并将实际文件移回其位置来恢复您的操作。