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。

(0)

相关推荐