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. 有空区分一下

Linux - Shell - find - 基础的更多相关文章

  1. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  2. Linux shell入门基础(六)

    六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...

  3. Linux shell入门基础(一)

    Linux shell入门基础(一): 01.增加删除用户: #useradd byf   userdel byf(主目录未删除)  userdel -r byf   该用户的属性:usermod 用 ...

  4. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  5. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  6. Linux Shell 编程基础详解——吐血整理,墙裂推荐!

    第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...

  7. Linux Shell编程基础

    在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls   显示当前路径下的文件,常用的有 -l 显示长格式  -a 显示所有包括隐 ...

  8. Linux shell脚本 基础

    一.shell中三个引号的用法 1.单引号:所见即所得 例如:var=123 var2='${var}123' echo var2 var2结果为${var}123 2.双引号:输出引号中的内容,若存 ...

  9. Linux shell脚本基础

    程序的组成: 程序:算法+数据结构 数据:程序处理的目标 数据结构:相互之间存在一种或多种特定关系的数据元素的集合 算法:处理数据的方式 编程风格: 面向对象:把所有的操作都转化为对象的方式. 面向过 ...

随机推荐

  1. python常见函数积累

    shape() 返回数组或者数据框有多少行或者多少列 import numpy as np x = np.array([[1,2,5],[2,3,5],[3,4,5],[2,3,6]]) #输出数组的 ...

  2. 查看appium参数

    首先打开appium server并运行,然后将手机与电脑相连,然后在python中写代码,但是代码需要出入appium参数,这些参数怎么查询呢? 1.创建appium参数 { "platf ...

  3. 分布式集群HA模式部署

    一:HDFS系统架构 (一)利用secondary node备份实现数据可靠性 (二)问题:NameNode的可用性不高,当NameNode节点宕机,则服务终止 二:HA架构---提高NameNode ...

  4. springboot中返回值json中null转换空字符串

    在实际项目中,我们难免会遇到一些无值.当我们转JSON时,不希望这些null出现,比如我们期望所有的null在转JSON时都变成“”“”这种空字符串,那怎么做呢? Jackson中对null的处理 @ ...

  5. 创建基于ASP.NET core 3.1 的RazorPagesMovie项目(三)-已搭建基架的Razor页面解释和更新

    本节主要介绍在上一节中通过搭建基架而创建的Razor页面,并做一些UI改变. 一.创建.删除.详细信息和编辑页面 1.双击Pages/Movies/Index.cshtml.cs文件,这是一个Razo ...

  6. Luogu4316 | 绿豆蛙的归宿 (期望DP)

    题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出发能够到达所有的点,所有的点也都 ...

  7. 编辑当前目录及其子目录,对比指定文件大小 (bat)

    @echo off :: 设置对比大小校验(单位为kb) set COMPARE=100 ::指定起始文件夹 cd %~dp0/ set DIR_PATH=%cd% :: 输出文件目录 set RES ...

  8. ubuntu set up 4 - 设置和软件

    1. Top Bar显示日期 https://askubuntu.com/questions/966576/customizing-tray-taskbar-date-display-in-ubunt ...

  9. Android_侧滑菜单的实现

    1.创建侧滑菜单Fragment package com.example.didida_corder; import android.os.Bundle; import android.view.La ...

  10. 为data中的某一个对象添加一个属性不起作用——this.$set的正确使用

    this.$set(obj, key, value) 我们在项目开发的过程中,经常会遇到这种情况:为data中的某一个对象添加一个属性 <template> <div class=& ...