linux locate 命令
locate 命令在 Linux 系统中用于搜索符合条件的文件,它通过系统内部维护的一个记录文件和目录名称的数据库来查找符合指定模式的文件或目录。
通常情况下,只需运行 locate your_file_name 即可完成对目标文件的搜索。
命令格式
locate [-d ][--help][--version][匹配规则...]
常用参数:
- -b, –basename — 仅匹配路径中的基本名称部分
- -c, –count — 只显示匹配结果的数量
- -d, –database DBPATH — 指定使用的数据库路径,代替默认的 /var/lib/mlocate/mlocate.db
- -e, –existing — 仅列出当前实际存在的文件条目
- -1 — 开启安全模式。在此模式下,用户无法看到没有访问权限的文件,这会降低搜索速度,因为 locate 需要检查每个文件的实际权限。
- -0, –NULL — 输出时以 NUL 字符分隔每个结果
- -S, –statistics — 不进行搜索,而是输出数据库相关统计信息
- -q — 静默模式,不显示任何错误信息
- -P, –nofollow, -H — 在检查文件是否存在时不跟随符号链接
- -l, –limit, -n LIMIT — 控制输出结果的最大数量
- -n — 设置最大输出条目数
- -m, –mmap — 此选项已被忽略,仅为兼容旧版本保留
- -r, –Regexp regexp — 使用基础正则表达式进行匹配
- –regex — 使用扩展正则表达式进行匹配
- -i, –ignore-case — 忽略大小写差异
- -V, –version — 显示命令版本信息
- -h, –help — 查看帮助文档
- -o — 自定义数据库保存文件名
示例操作
查找 passwd 文件,执行如下命令:
locate passwd
查找 etc 目录下所有以 sh 开头的文件:
locate /etc/sh
不区分大小写地查找当前用户目录下以 r 开头的文件:
locate -i ~/r
补充说明
locate 和 find 命令的工作方式不同:find 是直接在磁盘上实时查找,而 locate 则是基于预先构建好的数据库进行检索。
因此,locate 的查询速度更快,但它的数据来源于系统维护的数据库,默认位于 /var/lib/slocate/slocate.db,这意味着 locate 的搜索结果不是实时更新的。数据库一般由系统定时维护,也可以手动更新数据库,命令如下:
updatedb
通常情况下,系统每天会自动运行一次 updatedb 命令来同步文件信息。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END