1. 概述

    1. find 基础
  2. 背景

    1. 查找文件

      1. 人的记忆能力, 是有限的
      2. 计算机里的文件数量, 虽然不是无限, 但是也不少
      3. 要去找那些 记不清楚的文件, 必然要用查找
  3. 准备

    1. OS

      1. centos7
    2. 用户

      1. root

        1. 其他用户在执行中, 可能会遇到权限的问题

          1. 这里就不讲了...

1. find

  1. 概述

    1. 强大的文件查找工具
  2. 功能

    1. 查找文件
    2. 约束条件查找文件
    3. 对查找后的内容, 可以执行操作
  3. 命令结构

    > find [path] [options] [opt]
  4. opt

    1. 概述

      1. find 之后的操作
    2. 默认

      1. 打印完整的文件路径
    3. 其他

      1. 这个以后再说

        1. opt

2. path

  1. 概述

    1. path 参数
  2. path

    1. 搜索路径

      1. 这个算是第一个 约束条件
      2. 约束了地址, 可以让 查找范围更加精确
  3. 例子

    # 1. 搜索 当前路径 下, 所有文件
    > find
    # 2. 搜索 特定路径 下, 所有文件
    > find /etc
    # 3. 搜索 多个路径 下, 所有文件
    > find ~ /etc

3. 约束: 文件名

  1. 概述

    1. 添加 文件名 文件名约束
  2. -name

    1. 功能

      1. 添加 文件名 的限定条件
      2. 支持 通配符
  3. 例子

    # 精确查找文件名
    > find /etc/ -name 'passwd'
    # 基于 通配符 的 模糊查找
    > find /etc/ -name 'pass*'
  4. 结果

    1. -name 里的条件, 匹配的是 文件名, 或者 目录名

      1. 如果中间路径带有有 关键字 的话, 不会被 匹配出来

4. 约束: 正则路径

  1. 概述

    1. 更加强大的 约束
    2. 约束的对象, 是 文件路径
  2. -regex

    1. 功能

      1. 添加 路径 的限定条件
      2. 正则
  3. 例子

    > find /etc/ -regex '.*pass.*'
  4. 结果

    1. 路径匹配

      1. 路径中含有关键字, 也会被 搜索出来

        1. 能力更强大
  5. 其他

    1. 还有 -regextype 可以指定 正则类型

5. 约束: 用户

  1. 概述

    1. 以 用户 作为约束条件
  2. -user

    1. 功能

      1. 限定 文件 或 目录 的所属用户
  3. 例子

    > find /etc -user "tss"
  4. 其他

    1. 如果用户不存在, 会有异常提示
    2. 如果要找没有用户的文件, 可以用 -nouser

6. 约束: 用户组

  1. 概述

    1. 以 用户组 作为约束条件
  2. -group

    1. 功能

      1. 限定 文件 或 目录 的所属用户组
  3. 例子

    > find /etc -group "tss"
  4. 其他

    1. 如果用户组不存在, 会有异常提示
    2. 如果要找没有用户组的文件, 可以用 -nogroup

7. 约束: 文件权限

  1. 概述

    1. 以 文件执行权限 作为约束
  2. -perm

    1. 功能

      1. 限定 文件权限
  3. 例子

    # 方案1: 直接查找 权限
    > find /etc -perm 755
  4. 其他

    1. 这个 选项 的表达方式很灵活, 我只选了最简单的一种

      1. 如果需要了解, 请参看 man

8. 约束: 文件类型

  1. 概述

    1. 以 文件类型 作为约束
  2. -type

    1. 功能

      1. 约束类型
    2. 类型

      1. b: 块设备
      2. c: 字符设备
      3. d: 目录
      4. p: 管道
      5. f: 文件
      6. l: 连接
      7. s: socket
      8. D: door(Solaris 专用)
  3. 例子

    > find /etc -type f

9. 后续

  1. 没错, 这次就这么多

    1. 这些东西算是 最简单, 最常用 的了
  2. 后面命令, 参数会稍微 复杂一些

    1. 都写一起, 其实不太好消化
    2. 我有点懒得写了
    3. 最近产能不足, 干脆分成两篇吧...

ps

  1. ref

    1. 每天一个linux命令(19):find 命令概览

      1. 这个博客, 是我见到的 每天一个 linux 命令 系列, 最老的博客, 应该是 真正的原作 吧
    2. 每天一个linux命令(22):find 命令的参数详解
    3. linux find -regex 使用正则表达式
  2. 通配符和正则

    1. 这个肯定是不一样的啊

      1. 有空区分一下

最新文章

  1. 全国SHP地图数据赠送
  2. CSS样式----图文详解:css样式表和选择器
  3. Scala 深入浅出实战经典 第53讲:Scala中结构类型实战详解
  4. HTML5新特性之WebSocket
  5. js中数组以及for循环的使用
  6. strange error encountered today in ROS
  7. struts2视频学习笔记 22-23(基于XML配置方式实现对action的所有方法及部分方法进行校验)
  8. Report_客制化以PLSQL输出HTML标记实现WEB报表(案例)
  9. <转载>无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
  10. 查看当前支持的MySQL字符集的命令
  11. nginx log format
  12. Java中读取txt文件中中文字符时,出现乱码的解决办法
  13. POJ-2184 Cow Exhibition---01背包变形(负数偏移)
  14. 牛客小白月赛12 I (tarjan求割边)
  15. Kubernetes实战(一):k8s v1.11.x v1.12.x 高可用安装
  16. c++ linux socket编程 c++网络编程
  17. 批标准化 Batch Normalization
  18. WDA基础十三:常用模板管理
  19. MySQL免安装配置(亲测过,请放心借鉴)
  20. 为PartialView传递一个参数

热门文章

  1. Codeforces Round #617 (Div. 3) 补题记录
  2. 我的翻译--一个针对TP-Link调试协议(TDDP)漏洞挖掘的故事
  3. 【Unity|C#】基础篇(20)——枚举器与迭代器(IEnumerable/IEnumerator)
  4. 链表问题----删除链表的中间节点和a/b处的节点
  5. UI自动化测试的Page Object模式
  6. 转行小白成长路--java基础
  7. Oracle 12c中CDB与PDB实例参数更改影响实验
  8. K3/Cloud树形单据体的rowId赋值
  9. DeepLearningDTU: Building a RNN step by step
  10. 时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS