欢迎各位兄弟 发布技术文章
这里的技术是共享的
用途:查找文件
用法: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