本文介绍linux的locate命令功能说明、语法、选项与参数、使用解读,并演示怎么使用locate命令在linux上查找文件或目录

locate:用于查找符合条件的文件或目录

find命令似乎诠释了强悍是搜索能力北京linux培训,但对于大规模搜索而言,速率慢了些linux服务器维护,下边介绍一下更快速定位文件的命令locate

locate命令用于用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎范本样例条件的文件或目录

这个数据库坐落(/var/lib/mlocate/mlocate.db)文件,这个数据库每晚由cron程序来构建。当创建好这个数据库后,就可以便捷地搜索所需文件,他比find命令的搜索速率要快。

初次使用会报错,由于数据库文件此时仍未完善可以使用命令updatedb命令立即生成该数据库文件的最新版本。运行这个命令须要root权限

在用whereis和locate查找文件时,有时会找到已被删掉的数据,或则刚才构建文件却难以查找到,诱因就是由于数据库文件没有被更新

##安装

假如Linux没有这个命令请使用yum工具安装mlocate

yum install mlocate

##句型

功能说明:用于查找符合条件的文件或目录

句型:

locate [选项] [名称]

选项与参数:

-A,--all只显示匹配所有模式的条目

-b,--basename只匹配路径名的基本名称

-c,--count只显示找到的条目的数量

-d,--databaseDBPATH使用DBPATH,而非默认数据(即:/var/lib/mlocate/mlocate.db)

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

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

-h,--help显示帮助信息

-i,--ignore-case匹配模式时忽视大小写区别

-l,--limit,-nLIMIT限制为LIMIT项目的输出(或计数)

-m,--mmap被忽视,用于向后兼容

-P,--nofollow,-H当检测文件时不追随漫延的符号链接

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

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

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

-r,--regexpREGEXP搜索基本正则表达式REGEXP而不是模式

--regex模式是扩充正则表达式

-s,--stdio被忽视,用于向后兼容

-V,--version显示版本信息

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

##实例

立刻更新数据

linux模糊查找文件命令_linux中模糊查找文件名_linux模糊查找

[root@localhost /]# updatedb

###搜索目录下所有以sh开头的文件

[root@localhost /]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

###查找包含text字符串的相关文件

[root@localhost /]# locate text

###显示找到几个包含text字符串的相关文件

[root@localhost /]# locate -c text
351

###限定显示数目

假如显示的内容过多,可以使用-n选项来限定显示数目

[root@localhost /]# locate -n 5 text
/boot/grub2/i386-pc/gettext.mod
/boot/grub2/i386-pc/mda_text.mod
/boot/grub2/i386-pc/vga_text.mod
/etc/selinux/targeted/contexts
/etc/selinux/targeted/active/file_contexts

查找时不分辨大小写

[root@localhost /]# locate -i text

使用正则表达式

当须要查找符合特定规则的信息时linux模糊查找文件命令,可以使用-r选项匹配相应的正则表达式。

# 查找以 /var/lib/rpm 开头的文件
[root@localhost /]# locate -r ^/var/lib/rpm
# 查找以 zip 结尾的文件
[root@localhost /]# locate -r zip$

###查找近来变动过的文件

使用locate命令查不到近来变动过的文件。为了防止这些情况,可以在使用locate之前,先使用updatedb命令linux模糊查找文件命令,自动更新数据库。

# 新建文件
[root@localhost ~]# touch new_file
[root@localhost ~]# locate ~/new_file
[root@localhost ~]# updatedb
[root@localhost ~]# locate ~/new_file
/root/new_file
[root@localhost ~]# 
# 删除文件
[root@localhost ~]# rm -rf file.txt 
[root@localhost ~]# locate ~/file.txt
/root/file.txt
[root@localhost ~]# updatedb
[root@localhost ~]# locate ~/file.txt
[root@localhost ~]# 

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复