对于我来说这是一个很大的文件,我想把它放在与根分区不同的硬盘上。
补充一下:我希望它能用于 updatedb 的自动运行。我查看了 updatedb.conf 的手册页,但找不到任何可以让我更改路径的内容。
答案1
您可以检查您的 updatedb 版本是否支持--output FILE
参数并使其成为您的 bash 会话的别名并在您的 cron 作业中指定它。
还必须使用带--database FILE
参数的定位
正如 evencoil 所述,不可能使用符号链接,因为 updatedb 会在每次调用时重新创建文件。
答案2
在 Ubuntu 中,默认数据库位置已编译到mlocate
二进制文件中,因此很难更改。您可以设置 LOCATE_PATH 变量,但其中提到的数据库文件将仅用作附加数据库,而不是默认数据库。
解决方法 - 您的.db
文件有多大?在我的系统上是 5 MiB,这真的有问题吗?通过这种方式修剪一些您不需要搜索的路径locate
(参见man updatedb.conf
)并使文件更小不是更容易吗?
答案3
虽然创建链接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
答案4
只需使用符号链接想到了。
- 移至
mlocate.db
其他驱动器,假设它最终位于/some/path/mlocate.db
。 转到正确的文件夹
cd /var/lib
创建符号链接
ln -s /some/path/mlocate.db mlocate.db
请注意我还没有测试过这,但背后的原因对我来说听起来足够正确。如果它没有按预期运行,只需通过删除符号链接并将实际文件移回其位置来恢复您的操作。