Linux中find与grep的用法介绍

find:按照文件属性查找

  • 选项参数
    • -name: 例子:find /usr/src -name filename.txt
    • -type: 例子:find /usr/src -type filename.txt

      类型包括:f(file), d(directory), l(link), c(char), d(device), s(socket), b(block)

    • -size: 默认单位为512byte,一个扇区的大小
      • 例子:find /usr/src -size +10M -size -20M 查找大于10M小于20M的文件
      • 例子:find /usr/src -size +10k -size -20k
    • -maxdepth: 例子:find /usr -maxdepth 2 -type d | wc -l 统计/usr 目录下深度为2的所有目录文件
    • -exec: 例子: find ./ -name "*.sh" -exec ls -l {}; 列出当前目录下所有的 .sh 文件,并执行ls -l 命令
    • -print: 将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
    • print0: 就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
    • xargs
      • 以空格或 \0 作为分隔符拆分解析的命令。每次从缓冲区读取的数据有限,而exec则是一次性将查到的内容读到缓冲区内。
      • 例子:find ./ -name "*.sh" -print | xargs ls -l 结合管道一起使用,用法与exec一样。
    • -atime(access time): 访问时间, +7 七天以前,-7 最近七天以内访问过的
    • -amin: 访问时间(按照分钟)
    • -mtime: 上次修改的时间(按照天数)
    • -mmin(modified minute): 修改时间(按照分钟)
    • ctime(change time): 最近文件的状态被改变的时间
    • cmin(change minute): 最近文件的状态被改变的时间(按照分钟)

grep

grep英文全称为 global search regular expression and print out the line; 中文名称为:全面搜索正则表达式和打印输出行

  • 三种形式的grep命令

    • gerp:标准格式
    • egrep:扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。
    • fgrep: 快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。
  • 选项参数

    • -n:列出所有的匹配行,显示行号
    • -r: 递归搜索
    • -R
    • -i: 搜索时,忽略大小写
    • -c: 只输出匹配行的数量
    • -l: 只列出符合匹配的文件名,不列出具体的匹配行
    • -h: 查询多文件时不显示文件名
    • -s: 不显示不存在、没有匹配文本的错误信息
    • -v: 显示不包含匹配文本的所有行
    • -w: 匹配整个单词
    • -x: 匹配整行
    • -q: 禁止输出任何结果,已退出状态表示搜索是否成功
    • -b: 打印匹配行距文件头部的偏移量,以字节为单位
    • -o: 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位
  • 例子:使用grep 搜索 /usr/src/ 目录下包含 task_struct { 的字符,并显示字符所在的行号

    grep -r  "task_struct {" /usr/src/  -n       
    

注: 文章所写内容,均根据自己的理解来进行阐述的,若和读者的思考不一致,读者感觉理解不是很清楚的话,请直接阅读Linux中的man手册找到最原始的内容,进行学习和思考。
文章中所有的内容都可以在本人的Github上面找到,最新的文章一般在Github上面,博客中的文章不一定是最新的。若觉得文章有参考价值,欢迎Star。
Github: Learning-Computer-Science-Journey

猜你喜欢

转载自blog.csdn.net/breadheart/article/details/113482553