Linux常用命令之find与grep

本文是自己学习的总结,仅以作分享。若有不对的地方欢迎指正。

find:根据条件来搜索和查找文件或目录
    -name:查找文件
    -perm:匹配权限(mode为全匹配,-mode为包含即可)
    -user:匹配文件属主-group:匹配属组
    -mtime -n +n:匹配文件更改时间的文件,-n指n天以内,+n指n天以前
    -atime -n +n:匹配文件访问时间的文件,-n指n天以内,+n指n天以前
    -ctime n +n:匹配文件修改权限时间的文件,-n指n天以内,+n指n天以前
    -nogroup:匹配无有效属组的文件,即文件的属组在/etc/groups中不存在
    -nouser:匹配无有效属组的文件,即文件的属主在/etc/passwd中不存
    -type b/d/c/p/l/f:匹配文件类型,字母依次表示块设备、目录、字符设备、管道、符号链接、普通文件
    -size:匹配文件大小
    -prune:忽略某个目录

    根据文件名称查找
      find passwd:只在当前目录下查找passwd文件(不包括子目录)

      


      find -name passwd:在当前目录下查找passwd文件

      


      find ~ -iname passwd:在家目录下忽略大小写查找passwd文件

      


      find ~ -type d -name shell:在家目录下查找名称为shell的目录

      


    根据权限查找
      find ~ -type f -perm 777:在家目录下查找文件权限为777的文件

      


      find ~ -perm /u=x:在家目录下查找可执行的文件

      


      find ~ -type f -empty:在家目录下查找空文件

      


      find ~ -type f -name ".*":在家目录下查找隐藏文件

      


      find ~ -type f -name "*.7z" -exec rm -f {} \;:在家目录下查找所有以.7z结尾的文件并删除

      


    根据属组与属主查找
      find ~ -user ramble:在家目录下查找属主为ramble的文件

      


      find ~ -group ramble:在家目录下查找属组为ramble的文件

      


      find ~ -user ramble -name "*0*":在家目录下查找属主为ramble且文件名中有数字0的文件

      


    根据文件大小查找
      find ~ -size 2M:在家目录下查找文件大小为2M的文件

      


      find ~ -size +1M -size -3M:在家目录下查找文件大小在1M到3M之间的文件

      

 

grep:强大的列处理文件,查找文件里符合条件的字符串。不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据
    -a: 不要忽略二进制的数据
    -A <显示行数>:显示符合范本样式的行及该行之后的内容 
    -b: 在显示符合样式的那一行之前,标示出该行第一个字符的编号 
    -B <显示行数>: 显示符合范本样式的行及该行之前的内容 
    -c: 计算符合样式的行数 
    -C <显示行数>: 显示符合范本样式的行及该行前后的内容
    -d <动作>: 指定要查找的是目录时使用该参数,否则将报错
    -e <范本样式>: 指定字符串做为查找文件内容的样式
    -E: 将样式为延伸的普通表示法来使用 
    -f <规则文件>: 指定规则文件,查找符合规则条件的文件内容,格式为每行一个规则样式
    -F: 将样式视为固定字符串的列表 
    -G: 将样式视为普通的表示法来使用
    -h: 在显示符合样式的那一行之前,不标示该行所属的文件名称
    -H: 在显示符合样式的那一行之前,标示该行所属的文件名称 
    -i: 忽略字符大小写的差别 
    -y: 忽略字符大小写的差别
    -l: 列出文件内容符合指定的样式的文件名称 
    -L: 列出文件内容不符合指定的样式的文件名称 
    -n: 在显示符合样式的那一行之前,标示出该行的列数编号
    -o: 只显示匹配PATTERN 部分 
    -q: 不显示任何信息 
    -s: 不显示错误信息
    -v: 显示不包含匹配文本的所有行
    -w: 只显示全字符合的列 
    -x: 只显示全列符合的列 

grep "root" passwd:显示passwd中有root字符串的行


grep "root" passwd -o:只显示passwd中匹配到的root字符串


grep "root" passwd -c:显示passwd中有root字符串的行数


grep "root" passwd -i:忽略大小写显示passwd中有root字符串的行


grep "root" passwd -n:显示passwd中有root字符串的行且在行首标明行号


grep "^root" passwd -n:显示passwd中以root字符串开头的行且在行首标明行号


grep "root" * -n:在当前目录下搜索文件中有root字符串的文件且标明在文件名及行号


grep "root" *.txt -l:在当前目录下搜索满足文件中有root字符串的文件且文件名以.txt结尾的文件


grep "root" * --exclude=*.txt:在当前目录下搜索文件中有root字符串的且文件名不以.txt结尾的文件


grep "root" * --exclude-from test-02.txt:在当前目录下搜索文件中有root字符串文件且文件名不在test-02.txt中记录


grep "root" * -r --include=*.{txt,sh} -n:在当前目录下递归搜索以.txt或.sh结尾的文件中有root字符串的文件并显示文件名、行号等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值