linux系统find命令和grep命令

find命令

  find命令的作用是根据文件的名称或者属性查找文件。

  语法格式:

    find [查找范围] [参数]

  参数:

    -name:按照文件的名字查找文件(可使用通配符*)

    -iname:按照文件的名字查找文件(忽略大小写)

    -size:按照文件的大小查询文件

      +:查找大于输入的大小的文件

      -:查找小于输入的大小的文件

      无符号:查找等于输入的大小的文件

    -mtime:按修改时间去查询

      +n:表示查找n天以前的文件(不加符号默认为+)

      -n:表示查找n天以内的文件

    -atime:按照访问时间查找

      +n:表示查找n天以前的文件(不加符号默认为+)

      -n:表示查找n天以内的文件

    -ctime:按照属性修改时间查找

      +n:表示查找n天以前的文件(不加符号默认为+)

      -n:表示查找n天以内的文件

    -user:按照用户的属主查询

    -group:按照用户的属组查询

    -type:按文件的类型查询

    -prem:按照文件的权限查询

    -inum:根据index node号码查询

    -a:并且(可以省略默认是并且)

    -o:或者

    -maxdepth:查询的目录深度(必须放在第一个参数位)

    -exec:将find处理好的结果交给其他命令继续处理

  案例:

    案例1:查询仅在/root目录下的以index开头的文件

 

 

 

    案例2:查询当前目录下的大小为10M的文件

 

 

    为了演示文件大小的查询而生成了文件(不是准确的大小查找会出错)

      dd命令:作用是生成一个文件

        if:从什么地方读

        of:写入什么文件

        bs:每次写入多少内容

        count:写入多少次

    案例3:查找仅在当前目录下修改时间在三天以内的文件

 

 

 

    案例4:查找仅在当前目录下的链接文件或文件夹文件

 

    案例5:把 /etc 目录下的所有普通文件打包压缩到 /tmp 目录

 

 

    命令解释:

      tar -czPf:表示将文件打包到/tmp目录下的etc.tar.gz的gzip文件并忽视绝对路径的错误

      ``:表示反引号内的命令优先处理并将结果交给其他命令处理

      find:表示查找 /etc 目录下的普通文件

      |:管道符表示将前一个命令的结果交给之后的命令处理

      xargs:将处理的文本变成以空格分隔的同一行内容

        由于查找的结果带换行符,tar遇换行符会直接执行,因此需要将内容放到同一行

 

grep命令

  grep命令使linux三剑客之一,作用是根据文本内容过滤文件(文本过滤器)。

  语法格式:

    grep [参数] [匹配规则] [操作对象]

  参数:

    -n:过滤文本时显示过滤内容在文件内的行号

    -A:匹配成功后同时显示匹配行的后n行

    -B:匹配成功后同时显示匹配行的前n行

    -C:匹配成功后同时显示匹配行的前后n行

    -c:只显示匹配成功的行数

    -o:只显示匹配成功的内容

    -v:反向过滤

    -q:静默输出

    -i:忽略大小写

    -l:匹配成功后打印文件的名称

    -R|-r:递归匹配

    -E:使用拓展正则 等价于 egrep

  案例:

    案例1:显示1.txt文件中带有ye的行号和他的前后1行

 

 

    案例2:使用静默输出来查看1.txt文件中查询字符a

 

       由于静默输出没有结果,所以需要输出$?来查看结果

      $?表示的是上一行命令的执行结果,0表示成功,其他数字表示执行失败。

 

    案例3:查找在/etc目录下有多少个文件包含root

 

 

      利用wc命令来统计数量

      wc:匹配行数

        -l:打印匹配行数

        -c:打印匹配字节数

 

正则表达式

  普通正则表达式

    ^:以某字符开头

    $:以某字符结尾

    .:匹配除换行符之外的任意单个字符

    *:匹配前导字符的任意一个字符

    []:某组字符串的任意一个字符

    [^]:取反

    [a-z]:匹配小写字符

    [A-Z]:匹配大写字符

    [a-zA-Z]:匹配字母

    [0-9]:匹配数字

    \:取消转义

    ():分组

    \n:表示第n个分组

  拓展正则

    {}:匹配的次数

    {n}:匹配n次

    {n,}:匹配至少n次

    {n,m}:匹配n到m次

    {,m}:匹配最多m次

    +:匹配最少一个前导字符

    ?:匹配零个或一个字符

    |:或

  案例:

    案例1:在/etc/passwd文件中,匹配以ftp开头的行

 

 

    案例2:在/etc/passwd文件中,匹配以bash结尾的行

 

 

    案例3:匹配本机中的ip

 

 

    案例4:显示/etc/fstab中的除#号开头外的行,且#号后至少有一个空格

 

 

    案例5:找出1.txt文件中至少有一个空格的行

 

 

    案例6:显示nginx.conf 文件中除以#号开头的行和空行以外的内容

 

posted @   临江沂水  阅读(1285)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示