当前位置: 首页 > news >正文

Linux基础命令-locate快速查找文件

文章​​​​​​​目录

locate

命令介绍

语法格式

基本参数 

参考实例

1)查找1.txt相关的文件

2)查找包含pass和txt都有的文件

3)只匹配文件名,有路径的情况下不进行匹配

4)匹配不区分大小写的文件

5)使用基本正则进行匹配,并显示行数

6)查找文件最多输出5行

7)匹配查找多个包含log或者txt的文件,并显示行数

8)显示要查找的文件

9)搜索指定目录下的文件,并输出到文件里

命令总结

locate

命令介绍

还是一样先通过帮助文档了解含义

NAME
       locate - find files by name

        locate命令的功能是通过文件名称来查找文件,与find命令进行全局搜索不同,locate命令是读取这个数据文件(/var/lib/locatedb)进行查找。由于缩小了查找的范围,因此这个命令查找文件会比find要快很多。

小提示:使用locate命令时,若要同步当天建立的文件信息,需要先对数据库文件进行更新,查找前可以使用updatedb命令同步数据,再使用locate查找文件。

语法格式

        locate的语法格式相比find来说要简易些,能用到的参数只有几个。

语法:locate 【参数】查找的文件

SYNOPSIS
       locate [OPTION]... PATTERN...

基本参数 

此命令的常用参数有以下这些,以表格形式显示

-A显示匹配所有模式的文件,可使用多个匹配值选择要查找的文件
-b只能匹配文件名,有绝对路径的情况下不进行匹配
-c只显示文件数量
-d指定数据库所在目录
-e显示查找的文件
-n最多输出n个文件
-r可使用基本正则表达式
--regex可使用扩展正则表达式
-i忽略大小写

参考实例

1)查找1.txt相关的文件

先同步到数据库,直接查找文件

[root@localhost ~]# updatedb
[root@localhost ~]# locate "1.txt"
/etc/brltty/brl-ts-pb65_pb81.txt
/etc/pki/nssdb/pkcs11.txt
/home/host/1.txt
/root/.1.txt.swp
/root/1.txt
/root/1.txt.gz
/root/b_01.txt
/root/user1.txt
/root/.cache/tracker/parser-sha1.txt
/root/prometheus/1.txt
/root/test/brl-ts-pb65_pb81.txt
....

2)查找包含pass和txt都有的文件

-A参数是可以匹配2个或者多个都有的值才会显示相应的文件 

[root@localhost ~]# locate -A "pass" "txt"
/root/passwd.txt

3)只匹配文件名,有路径的情况下不进行匹配

locate加了-b的参数,查找全路径的文件,发现不进行匹配

[root@localhost ~]# locate -b "1.txt"
/etc/brltty/brl-ts-pb65_pb81.txt
/etc/pki/nssdb/pkcs11.txt
/home/host/1.txt
/root/.1.txt.swp
/root/1.txt
......
[root@localhost ~]# locate -b "/root/1.txt"

4)匹配不区分大小写的文件

-i表示不区分大小写的文件,大小写的文件都能进行匹配

[root@localhost ~]# locate -i "testdir"
/root/TESTDIR
/root/testdir

5)使用基本正则进行匹配,并显示行数

用正则进行匹配,以/var开头,以log结尾的内容 

[root@localhost ~]# locate -r "^/var/.*\.log$" -c
30

6)查找文件最多输出5行

-n可以设置显示输出的行数,要设置多少行就是显示多少行文件 

[root@localhost ~]# locate -n 5 "test"
/boot/grub2/i386-pc/cmdline_cat_test.mod
/boot/grub2/i386-pc/cmostest.mod
/boot/grub2/i386-pc/div_test.mod
/boot/grub2/i386-pc/exfctest.mod
/boot/grub2/i386-pc/functional_test.mod

7)匹配查找多个包含log或者txt的文件,并显示行数

可以使用扩展正则进行匹配查找,当然不使用正则,也可直接以要查找的关键词进行查找文件 

[root@localhost ~]# locate --regex "(log|txt)" -c 
2660
[root@localhost ~]# locate  "log" "txt" | wc -l
2660

8)显示要查找的文件

使用-e参数其实与不使用-e参数的结果是一样的,目的其实都是将结果打印显示。 

[root@localhost ~]# locate -e "samba" -n 3
/etc/samba
/etc/logrotate.d/samba
/etc/samba/lmhosts

9)搜索指定目录下的文件,并输出到文件里

[root@localhost ~]# locate -e "/etc/init"
/etc/init.d
/etc/inittab
[root@localhost ~]# locate -e "/etc/init" > a.txt
[root@localhost ~]# cat a.txt
/etc/init.d
/etc/inittab

命令总结

       有时能常用到locate命令,功能虽然没有find那么强大,但满足基本的搜索查找,还是一个很不错的命令,还可配合正则进行匹配查找,不管是在效率上还是查找的条件,熟悉运用能提升不少找文件的水准,若觉得以上内容还行的,可以点赞支持一下!

http://www.lryc.cn/news/18841.html

相关文章:

  • 揭穿数据分析的六大谎言
  • LinkSLA智能运维技术派-Redis的监控
  • Hugging face 模型微调学习:T5-base的微调
  • JavaScript 测试 Prototype
  • pnpm / yarn / npm管理依赖包
  • 注意力机制详解系列(一):注意力机制概述
  • 搜索引擎 Elasticsearch 的三大坑
  • 运营级手机直播平台源码 短视频直播带货APP源码
  • http/HTTPS相关的一些知识
  • MySQL高可用 集群(MHA)
  • 【JavaScript速成之路】JavaScript运算符
  • 计网个人作业05
  • 码匠 × OpenAI :快速生成 SQL 语句,提升开发效率!
  • 电脑显示屏不亮但是主机已开机?5种原因以及解决方案
  • 公司项目vue cli2升级到vue cli3
  • 流程图培训
  • 编写使用多buffer的应用程序
  • 【java 8】强大的 Stream API
  • 自动驾驶仿真:ECU TEST自动化测试常用API调用
  • notepad++中使用正则表达式
  • 什么蓝牙耳机打游戏好?打游戏好用的无线蓝牙耳机
  • 基于appium的app自动化测试框架
  • 【拿好了!Linux 运维必备的 13 款实用工具!】
  • 软考中级--嵌入式系统设计师考试培训教程开始了
  • JDBC学习(复习)-面试总结详细
  • 前端:你不知道的async await
  • c#前端实现对pcl点云颜色根据强度特征动态变化突出指定对象
  • 如何制定达人营销策略
  • 100种思维模型之三层解释思维模型-020
  • RK系列(RK3568) i2s 音频输入 麦克风驱动