updatedb 命令生成器
生成用于构建或更新 locate 所使用的文件名数据库的命令。
开始使用 updatedb
## 什么是 updatedb?
`updatedb` 用于构建或更新`locate`查询时所使用的文件名数据库。运行该命令后,`locate needle`能够在几毫秒内根据文件名找到对应文件,这比`find`扫描整个文件系统要快得多。该数据库会按照预定时间表(通常是通过 cron 每天)重新生成,但也可以在有大型文件变动时手动运行。
## 使用方法
1. **选择选项**:通常无需选择任何选项——`sudo updatedb`即为常用格式。根据需要可添加`--output`、`--prunepaths`、`--prunefs`、`--database-root`、`--require-visibility`或`-v`。 2. **指定自定义数据库**(可选):使用`--output`将数据写入默认的`/var/lib/plocate/plocate.db`或`/var/lib/mlocate/mlocate.db`之外的位置。 3. **复制并运行**:在命令前加上`sudo`,这样扫描过程就能遍历所有目录。
常用选项
### `-v` 详细模式 在扫描过程中直接打印路径——有助于确认数据库确实在被重建。
### `--output=FILE` 自定义数据库 将索引写入指定路径:`updatedb --output=/tmp/mydb.db`,然后使用`locate -d /tmp/mydb.db pattern`进行查询。
### `--prunepaths='DIRS'` 跳过目录 排除某些路径,使其不会出现在`locate`的查询结果中:`updatedb --prunepaths='/tmp /var/tmp /mnt/backup'`。
### `--prunefs='FSTYPES'` 跳过文件系统类型 跳过诸如`nfs`或`tmpfs`这样的整个文件系统类型,从而避免对网络挂载或临时挂载的文件进行索引:`updatedb --prunefs='nfs tmpfs'`。
### `--database-root=PATH` 扫描根目录 将某个子树视为文件系统根目录来创建索引——非常适合为chroot环境或已挂载的镜像构建数据库。
### `--require-visibility` 权限过滤 记录索引创建用户可查看的文件,同时对`locate`隐藏其余文件。plocate默认关闭此功能(仅对全局可读路径进行索引);mlocate默认开启此功能。
▶为什么“定位”功能找不到我刚刚创建的文件?
▶mlocate 与 plocate — 有什么区别?
▶为什么运行 updatedb 需要 sudo 权限?
如果这个工具对你有帮助的话,请考虑请我喝杯咖啡。
请给我买杯咖啡吧。