不管是Linux系统还是Windows系统最好是少用搜索,在服务器规划时就规划好文件的存放,不要随便瞎放,因为搜索功能会占用大量的系统资源。如果实在要查找,不要在服务器业务高峰期进行此操作,查找的目录范围越小越好,搜索的条件越精准越好。

1.find

功能:文件搜索
语法:find [搜索范围] [匹配条件]

选项

  • -name
    根据文件名来查找文件

    此搜索是精确搜索,不像Windows是模糊搜索,也会出现例如optab、1opt等。若想是模糊搜索则需要加上通配符。

    也可以更精确,比如记得文件名是init开头,后面还有3个字符,则可以这样搜索
  • -iname  不区分大小写
  • -size
    根据文件大小来查找文件
    $ find / -size +204800
    表示在根目录下查找大于100M的文件;+n 大于,-n 小于,n 等于;
    这里的数值单位为数据块,1数据块=512字节=0.5K,则100M=102400K=204800数据块
  • -user
    根据所有者查找
  • -group
    根据所属组查找
  • 时间属性
  • -amin  access,访问时间
  • -cmin  change,文件属性
  • -mmin  modify,文件内容
    例如:查找/etc目录下在5分钟之内被修改过属性的文件或目录
    $ find /etc -cmin -5
  • -type
    根据文件类型查找
    -f 文件,-d 目录,-l 软链接文件
  • -a
    all,用于连接多个搜索条件,同时满足
  • -o
    or,用于连接多个搜索条件,满足任意一个即可
  • -exec/-ok
    组合用于对find查找出的结果进行其他操作。
    例如:在/etc目录下查找文件名为inittab的文件并显示其详细信息

    -exec…{} ;为固定格式
    -exce/-ok的区别在于,-ok会有一个确认机制再次询问确认,适用于删除操作。
  • -inum
    根据i节点来查找

2.locate

功能:在资料库中查找文件。查找速度比find快,因为find是在目录下进行遍历查找,而locate是在资料库中直接查找

通过locate locate可以查到其资料库所在位置,其资料库本质是一个文件和文件夹的索引数据库。

centos模糊查询文字 linux 模糊查询文件_centos模糊查询文字


locate最大的问题是,新创建文件之后索引数据库没有及时更新导致locate查不出来,针对这个问题可以查找之前使用updatedb更新一下数据库;并且/tmp临时目录下的文件没有存在索引数据库中

centos模糊查询文字 linux 模糊查询文件_centos模糊查询文字_02

选项

  • -i
    不区分大小写

3.which

功能:搜索命令所在目录及别名信息

/bin和/usr/bin路径下的命令所有的用户都可以使用

/sbin和/usr/sbin路径下的命令只有root用户可以使用

centos模糊查询文字 linux 模糊查询文件_查找文件_03

4.whereis

功能:搜索命令所在目录及帮助文档路径

5.grep

选项

  • -i  不区分大小写
  • -v  排除指定字符,反向筛选