find—查找目标目录以及子目录下的文件及文件夹

  • find 目录 选项 文件
  • 选项:
    • -name 基于名字找
    • -type 基于文件类型找
    • -perm 基于文件权限找
  • 如:

    • find . -name”hello.txt” 查找当前目录下文件名为 hello.txt 的文件或文件夹
    • find . -name”hello“ 查找当前目录下文件名包含 hello 的文件或文件夹
    • find /home -name”bash“ 查找目录/home 下文件名包含 bash 的文件或文件夹
    • find . -name “*” 查找当前目录下的所有文件或文件夹 (作用同 ls -R)
    • find . -name “[h]*” 查找当前目录下以 h 开头的文件或文件夹
    • find . -name”[h|f]*” 查找当前目录下所有以 h 或 f 开头的文件或文件夹
    • find . -name”[a-z]*” 查找当前目录下所有以小写字母开头的文件或文件夹
    • find . -perm 777 查找当前目录下权限为 777 的文件或文件夹
    • find . -name”[^a-h]*” 查找当前目录下所有不以 a-h 开头的文件或文件夹
    • find . -type d
      • 查找当前目录下所有的文件夹(普通文件的类型为 f)
          1. f:普通文件,如文本文件,可执行文件
          1. d:目录
          1. l:软链接文件
          1. c:字符设备,如终端,磁带机等
          1. b:块设备,如光盘,硬盘等

            grep—基于目标文件查找符合要求的行

  • grep [选项] 匹配模式 目标文件

  • 选项:
    • -i 搜索时,忽略大小写
    • -c 只输出匹配行的数量
    • -l 只列出符合匹配的文件名,不列出具体的匹配行
    • -n 列出所有的匹配行,显示行号
    • -h 查询多文件时不显示文件名
    • -s 不显示不存在、没有匹配文本的错误信息
    • -v 显示不包含匹配文本的所有行
    • -w 匹配整词
    • -x 匹配整行
    • -r 递归搜索
    • -q 禁止输出任何结果,已退出状态表示搜索是否成功
    • -b 打印匹配行距文件头部的偏移量,以字节为单位
    • -o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位
  • grep “root”/etc/passwd 查找到/etc/passwd 文件中包含 root 的行
  • grep -n “root”/etc/passwd 查找到/etc/passwd 文件中包含root 的行并输出行号
  • grep “^ma”/etc/passwd 查找以 ma 为行首的行
  • grep “bash$”/etc/passwd 查找以 bash 为行尾的行
  • grep “[1]“/etc/passwd 查找以 r 或 d 为行首的行

    wc—统计文件的字节数,字数,行数,字符数等内容

  • 语法:wc [选项] 文件名

    • -w 统计字数,或—words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
    • -c 统计字节数,或—bytes或—chars:只显示Bytes数
    • -l 统计行数,或—lines:只显示列数
    • -m 统计字符数
    • 示例:
      • 计文件行数 wc -l 文件名
      • 统计文件字符数 wc -m 文件名