locate命令
搜索/root目录下含test文件
locate test|grep /root/
或者locate /root/*test*
locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用通配符(如”*
” 或”?
”等)来指定范本样式。
#默认文件名前后会加通配符*
locate
pattern = (
locate
*pattern*)
#只匹配文件名 去通配符
locate
-b
'\pattern'
#忽略文件名大小写
locate
-i pattern
#使用基本正则匹配模式
locate
-r pattern
#使用扩展正则匹配模式
locate
--regex pattern
命令参数
-e
- 将排除在寻找的范围之外。-1
- 如果是1
。则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为locate
必须至实际的档案系统中取得档案的权限资料。-f
- 将特定的档案系统排除在外,例如没有到理要把proc
档案系统中的档案放在资料库中。-q
安静模式,不会显示任何错误讯息。-n
至多显示n
个输出。-r
使用正规运算式 做寻找的条件。-o
指定资料库存的名称。-d
指定资料库的路径-h
显示辅助讯息-V
显示程式的版本讯息
注意:运行
locate
命令时,系统报错:locate: command not found。查了相关资料,发现原因是系统上没有该执行文件,就需要安装。解决方案如下:
执行命令:[root@localhost ~]#yum install locate
//看locate属于哪个软件包
查出来mlocate.x86_64 : An utility for finding files by name 执行:[root@localhost ~]#yum install mlocate
mlocate安装完成之后,再执行locate命令,就不会报错。实在不行,还可以使用命令:
yum install *locate
来安装。执行 updatedb 手动构建库
[root@localhost ~]#updatedb
完成后就可以执行locate了locate [-ir] keywords-i:表示忽略大小写-r:表示后面跟正则表达式搜索/root以.txt结尾的
locate -r '.txt$'|grep /root
#默认文件名前后会加通配符*
locate
pattern = (
locate
*pattern*)
#只匹配文件名 去通配符
locate
-b
'\pattern'
#忽略文件名大小写
locate
-i pattern
#使用基本正则匹配模式
locate
-r pattern
#使用扩展正则匹配模式
locate
--regex pattern
find -name只能支持普通的通配符如*等,简单的-regex也不能支持扩展的正则表达式,要支持扩展的正则表达式,可用如下命令。
如要找出当前目录下字母开头至少4个数字结尾的txt文件,可以如下这么写:
find ./ -regextype 'posix-egrep' -regex '\./[a-z]+[0-9]{4,}\.txt$'注意这里find的结果是以'./’开头的,但似乎不支持\d,支持\w。