欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Linux命令分析: locate 有大用 有大大用

用途:查找文件

用法:locate   [选项]...    PATTERN...

locate通过查找mlocate等一个或多个数据库匹配文件名,并将匹配到的结果进行标准输出,每行一个结果

在未指定--regex参数时,PATTERN中可包含通配符

由于locate只查表不检查文件是否实际存在,故locate可能无法查到近期更改的文件


参数:

-b   --basename   与--wholename相反,认为后接的字符串是basename来进行匹配

-c   --count   不列出匹配的文件名,只列出数量

-d   --database DBPATH   后接指定数据库变量DBPATH,该变量是一串数据库名的列表,不采用默认匹配数据库mlocatedb

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

-L   --follow   检查文件是否存在时,会通过符号链接找到被链接文件,这样就不会输出broken symbolic的结果(当符号链接指向的文件被删除时,该符号链接成为broken symbolic),默认设置,与-P相对

-h   --help

-i   --ignore-case   匹配时忽略大小写(默认是区分大小写) 不区分大小写

-l   --limit   实际使用时的用法为locate -n 数字,表示只列出前几个匹配结果

-m   --mmap   忽略向后兼容性,一般用不上

-P   --nofollow,-H   与-L相对,不沿符号链接检查文件是否存在,会将broken symbolic结果也输出

-0   -null   将输出里的不同条目以ASCII字符NUL进行间隔,其实就是输出结果连在一起不换行

-S   --statistics   后面不接参数,只是把搜索数据库的统计信息输出

-q   --quiet   静默模式,不显示读取数据库的错误信息

-r   --regexp REGEXP   使用基础正则表达式

--regex   使用扩展正则表达式

-s   --stdio   忽略向后兼容性,一般用不上

-V   --version

-w   --wholename   与--basename相对,将后接字符串作为whole path name进行匹配,这样转义符号无法被识别




典型用法:

1.查找所有名字包含abc的文件

locate   abc


2.查找/etc目录下以sh开头的文件

locate   /etc/sh


3.列出5各后缀为.sh的文件

locate   -n   5   .sh


4.后接正则表达式作为查找条件

locate   -r   正则表达式


来自 https://blog.csdn.net/shengxia1999/article/details/77883951



普通分类: