• Linux学习笔记——文件搜索命令


    文件搜索命令

    文件搜索命令find

    • find [搜索范围] [匹配条件]    用于文件搜索
    • find [搜索范围] -name [关键字] 在特定路径下搜索文件名作为关键字的文件或者目录
    • find [搜索范围] -name [关键字] *这样为带有关键字的任何文件都可以被搜索出来
    • find [搜索范围] -name *[关键字] *这样为带有关键字的任何文件都可以被搜索出来,匹配任意字符 加通配符*
    • find [搜索范围] -name [关键字]??? 这样搜索的是关键字后带三个字符的,几个问号几个字符。
    • find [搜索范围] -iname [关键字] 不区分大小写搜索

           注意:不能在服务区高峰的时候使用查找命令。台站内存资源,搜索的范围路径越小越好,搜索条件越精准越好

    • find [搜索范围] -size [数据块]       根据文件大小查找

               数据块前面加+表示查找大于这个大小的文件,-表示查找小于这个大小的文件,不加表示查找等于这个大小的文件(一般不常用)

    1个数据块=512字节=0.5K
    size后接的数据只能为数据块 需要换算,比如需要查找大于100MB的文件
    100MB=102400KB=204800
    find /etc -size +204800
    数据块为Linux存储文件最小单位

    • find [搜索范围] -user[所有者名] 根据所有者查找
    • find [搜索范围] -group [所属组名] 根据所属组查找
    • find [搜索范围] -amin [时间] 查找时间以内被访问过的文件和目录 a;access
    • find [搜索范围] -cmin [时间]  查找时间以内被修改过属性的文件和目录 c:change
    • find [搜索范围]  -mmin [时间]  查找时间以内被修改过内容的文件和目录 m:modift

             +:超过多长时间     -:多长时间以内

    • find [搜索范围] -size [数据块] -a -size [数据块]

            -a:两个条件同时满足

            -o:两个条件满足任意一个即可

             find /etc -size+163840 -a -size -204800

             在 /etc 下查找大于80MB小于100MB的文件

    • find [搜索范围] -name [关键字] -a -type f

              在特定路径下搜索文件名作为关键字的文件
              -type 根据不同类型查找
              f:文件
             d:目录
              l:软链接

    • find [搜索范围] -name [关键字] -exec ls -l {} ;

              查找到文件之后并且对其进行查看ls操作。
              -exec:查找到文件之后并且对其进行各种操作 {} ;不能丢
              -ok:用于询问确认 一般在删除操作的时候使用,比如:
               find -user yangyang -ok rm {} ;
              删除yangyang用户的文件 他会挨个询问你是不是确定删除

    • find [搜索范围] -inum [i节点值] 根据i节点查询
      find /etc -inum 12345 -exec rm {} ;
      删除这个i节点文件 非常方便
      也可以用来查询一个文件的硬链接
      find /etc inum 12345 -exec ls -l {} ;
      因为硬链接和文件肯定在同一个分区,并且i节点一样

    其他文件搜索命令

    • locate [文件名]
      在文件资料库中查找 速度更快
      updatedb 更新文件资料库 因为locate并不是实时的
      如果存放的文件在/tmp 临时文件存放处下面 locate就找不到,文件资料库不存储临时文件内容
      注意:在使用的Linux系统为Linux(CentOS7)的时候,使用命令locate时发现系统显示:-bash: locate: 未找到命令,遇到错误。它的原因是:在CentOS 7 系统中默认没有安装该命令。
      以下为解决办法:
      链接: 解决locate命令未找到问题.
    • locate -i 不区分大小写查找
    • which 查找命令存放位置,可以看到命令可以使用的使用者是谁,也可以查看命令别名 which rm 会显示 alias rm='rm -i’
      我们所使用的rm只不过是别名 不是真正的rm命令,其实是rm -i命令,所以才会询问是否真的删除,真正的rm是不会询问的,比如:
      /bin/rm /tmp/yangyang 文件直接删除不会询问是否删除 相当于加了 -f
    • whereis 也可以找到命令的绝对路径,还可以找到查询命令的帮助信息文档所在位置
    • grep 在文件内查询字符串或者关键字列出来
    • grep -i 不区分大小写查找
    • grep -v 排除指定字符串
      比如:
      grep -v ^# /etc/inittab
      查找排除#开头的注释行文件信息
      ^代表行首
      文件中#开头的行 为配置文件信息,脚本信息
  • 相关阅读:
    ==和equals
    java 多重继承
    java单例模式
    基础小知识
    print流之错误日志
    print流
    实现读文本文件(IOl流)
    缓冲流(数据的复制粘贴)IO流
    力扣20题、1047(括号合法性,删除字符串中的所有相邻重复项)
    力扣232题、225题(栈实现队列,队列实现栈)
  • 原文地址:https://www.cnblogs.com/Leisy/p/14678406.html
Copyright © 2020-2023  润新知