您的位置:首页 > 运维架构 > Linux

[一天几个linux命令] locate

2017-06-03 09:47 387 查看

简介

locate - 以文件名寻找相应的文件

语法

locate [OPTION]… PATTERN…

描述

locate 从updatedb事先准备好的一个或多个数据库中读取并匹配至少一个符合PATTERN的文件名到标准输出。一个文件名占一行

如果
--regex
没有被指定,PATTERN可以包含通配符字符,如果PATTERN没有包含通配符,那么locate表现的像
*PATTERN*
一样

默认情况下,locate不检查在数据库中找到的文件是否还存在。locate不能报告文件在创建之后相应数据库的更新次数。

选项

-A, –all 打印符合所有PATTERN而不是符合一个PATTERN

-b, –basenae 匹配基本文件名

-c, –count 只显示找到的条目的号码

-d, –database DEPATH 用DEPATH替代默认的数据库(/var/lib/mlocate/mlocate.db)

-e,–existing 只显示当前存在的文件条目

-L, –follow 当文件存在时跟随蔓延的符号链接(默认)

-h, –help 显示帮助文件并退出

-i, –gonore-case 忽略大小写

-l, –limit, -n LIMIT 限制至多输出LIMIT个文件

-m, -mmap 忽略向后兼容性

-0, –null 输出时以NUL分隔项目

-S –statistics 不搜索项目,显示有前每个已用数据库的统计信息

-q, –quiet 不报告关于读取数据库的错误消息

-r, –regexp REGEXP 搜索基本正则表达式REGEXP来代替模式

–regex模式是扩展正则表达式

-s, –stdio 忽略向后兼容性

-V, –version 显示版本信息

-w, –wholename 匹配完整路径名(默认)

鸟哥的总结

locate来寻找数据是由已创建的数据库/var/lib/mlocate里面的数据所查找到的,所以不用直接在去硬盘当中访问数据,当然是很快速

因为它是经由数据库来查找的,而数据库的创建默认是每天执行一次(每个distribution不同)所以当欠新建文件后查找该文件,那么locate会告诉你“找不到”,因为必须要更新数据库

那能否手动更新数据库吗?当然可以,更新locate数据库的方法非常简单,直接输入“updatedb”就可以了!updatedb命令会去读取/etc/updatedb.conf这个配置文件的设置,然后再去硬盘里面进行查找文件名的操作,最后就更新事个数据库文件啰!因为updatedb会去查找硬盘,所以当你执行updatedb时,可能会等待数分钟的时间。

update:根据/etc/updatedb.conf的设置去查找系统硬盘内的文件名,并更新/var/lib/mlocate内的数据库文件

locate:依据/var/lib/mlocate内的数据库记载,找出用户输入的关键字文件名。

参考文献

《鸟哥的私房菜-基础学习篇》

《linux命令大全》

《centos手册》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: