Linux文件搜索命令

时间:2022-08-21 09:19:42

locate搜索命令

  • 命令格式:locate [文件名]
    在后台数据库中按文件名搜索,并非直接在系统中搜索。因此搜索速度更快,但对新建文件会有一天的延迟。
  • /var/lib/mlocate
    locate命令所搜索的后台数据库
  • 命令 updatedb 更新数据库
  • locate按此配置文件进行搜索(筛选规则)
    /etc/updatedb.conf (配置文件)
    • PRUNE_BIND_MOUNTS = “yes”
      开启搜索限制
    • PRUNEFS =
      不搜索的文件系统
    • PRUNENAMES =
      不搜索的文件类型
    • PRUNEPATHS =
      不搜索的路径

文件搜索命令 find

  • find [搜索范围] [搜索条件]
  • find / -name install.log
    1. 避免大范围搜索,耗费系统资源
    2. find在系统中搜索完全符合条件的文件名,如用范围匹配,需要使用通配符

Linux中的通配符

通配符 释义
* 匹配任意内容
? 匹配任意一个字符
[ ] 匹配任意一个中括号内的字符

例子:

  1. find /root -name “ab[cd]”
    结果:/root/abc
       /root/abd
  2. find /root -name “*[cd]”
    以c和d结尾的即可

find其他功能

  • 不区分大小写
    find /root -iname install.log

  • 按照所有者搜索
    find /root -user root

  • 查找没有所有者的文件
    find /root -nouser

  1. 没有所有者的文件就是垃圾文件,可通过-nouser来查找并删除
  2. 内核文件和外来文件没有所有者,/proc和/sys中文件没有所有者是正常的
  • 通过日期查文件
    find /var/log/ -mtime +10 (var日志文件夹)
    • -10:10天内修改的文件
    • 10:第10天修改的文件
    • +10:10天前修改的文件
    • atime:文件访问时间
    • ctime:改变文件属性时间
    • mtime:修改文件内容时间

  • 查找五分钟内修改的文件
    find / -mmin -5

  • 通过文件大小查找
    find . -size 25k

    • -25k:小于25的文件
    • 25k:等于25k的文件
    • +25k:大于25k的文件
  • 通过节点
    find . -inum 262422
    查找节点是262422的文件

  • 逻辑与、或查找

    find /etc -size +20k -a -size -50k

     查找 /etc 目录下大于20k并小于50k的文件

    • -a:逻辑与,两个条件都满足
    • -o:逻辑或,两个条件满足一个即可
  • 二次条件查找
    -exec ….. {} \;

    find /etc -size +20k -a -size -50k -exec ls -lh {} \;

     查找文件大于20k并小于50k的文件并显示详细信息

搜索命令的命令 whereis 和 which

  • whereis [命令名]
    搜索命令所在路径及帮助文档所在位置
    • -b:只查可执行文件
    • -m:只查帮助文档
  • where [文件名]
    搜索命令所在路径及别名

  • PATH环境
    定义的是系统搜索命令的路径
    [root@localhost ~]# echo $PATH
    使我们每次输入命令不同打出绝对路径,避免命令过长