Linux - Shell - find - 基础
概述
- find 基础
 
背景
- 查找文件
- 人的记忆能力, 是有限的
 - 计算机里的文件数量, 虽然不是无限, 但是也不少
 - 要去找那些 记不清楚的文件, 必然要用查找
 
 
- 查找文件
 准备
OS
- centos7
 
用户
- root
- 其他用户在执行中, 可能会遇到权限的问题
- 这里就不讲了...
 
 
 - 其他用户在执行中, 可能会遇到权限的问题
 
- root
 
1. find
概述
- 强大的文件查找工具
 
功能
- 查找文件
 - 约束条件查找文件
 - 对查找后的内容, 可以执行操作
 
命令结构
> find [path] [options] [opt]
opt
概述
- find 之后的操作
 
默认
- 打印完整的文件路径
 
其他
- 这个以后再说
- opt
 
 
- 这个以后再说
 
2. path
概述
- path 参数
 
path
- 搜索路径
- 这个算是第一个 约束条件
 - 约束了地址, 可以让 查找范围更加精确
 
 
- 搜索路径
 例子
# 1. 搜索 当前路径 下, 所有文件
> find
# 2. 搜索 特定路径 下, 所有文件
> find /etc
# 3. 搜索 多个路径 下, 所有文件
> find ~ /etc
3. 约束: 文件名
概述
- 添加 文件名 文件名约束
 
-name
- 功能
- 添加 文件名 的限定条件
 - 支持 通配符
 
 
- 功能
 例子
# 精确查找文件名
> find /etc/ -name 'passwd'
# 基于 通配符 的 模糊查找
> find /etc/ -name 'pass*'
结果
- -name 里的条件, 匹配的是 文件名, 或者 目录名
- 如果中间路径带有有 关键字 的话, 不会被 匹配出来
 
 
- -name 里的条件, 匹配的是 文件名, 或者 目录名
 
4. 约束: 正则路径
概述
- 更加强大的 约束
 - 约束的对象, 是 文件路径
 
-regex
- 功能
- 添加 路径 的限定条件
 - 正则
 
 
- 功能
 例子
> find /etc/ -regex '.*pass.*'
结果
- 路径匹配
- 路径中含有关键字, 也会被 搜索出来
- 能力更强大
 
 
 - 路径中含有关键字, 也会被 搜索出来
 
- 路径匹配
 其他
- 还有 -regextype 可以指定 正则类型
 
5. 约束: 用户
概述
- 以 用户 作为约束条件
 
-user
- 功能
- 限定 文件 或 目录 的所属用户
 
 
- 功能
 例子
> find /etc -user "tss"
其他
- 如果用户不存在, 会有异常提示
 - 如果要找没有用户的文件, 可以用 -nouser
 
6. 约束: 用户组
概述
- 以 用户组 作为约束条件
 
-group
- 功能
- 限定 文件 或 目录 的所属用户组
 
 
- 功能
 例子
> find /etc -group "tss"
其他
- 如果用户组不存在, 会有异常提示
 - 如果要找没有用户组的文件, 可以用 -nogroup
 
7. 约束: 文件权限
概述
- 以 文件执行权限 作为约束
 
-perm
- 功能
- 限定 文件权限
 
 
- 功能
 例子
# 方案1: 直接查找 权限
> find /etc -perm 755
其他
- 这个 选项 的表达方式很灵活, 我只选了最简单的一种
- 如果需要了解, 请参看 man
 
 
- 这个 选项 的表达方式很灵活, 我只选了最简单的一种
 
8. 约束: 文件类型
概述
- 以 文件类型 作为约束
 
-type
功能
- 约束类型
 
类型
- b: 块设备
 - c: 字符设备
 - d: 目录
 - p: 管道
 - f: 文件
 - l: 连接
 - s: socket
 - D: door(Solaris 专用)
 
例子
> find /etc -type f
9. 后续
没错, 这次就这么多
- 这些东西算是 最简单, 最常用 的了
 
后面命令, 参数会稍微 复杂一些
- 都写一起, 其实不太好消化
 - 我有点懒得写了
 - 最近产能不足, 干脆分成两篇吧...
 
ps
ref
- 每天一个linux命令(19):find 命令概览
- 这个博客, 是我见到的 每天一个 linux 命令 系列, 最老的博客, 应该是 真正的原作 吧
 
 - 每天一个linux命令(22):find 命令的参数详解
 - linux find -regex 使用正则表达式
 
- 每天一个linux命令(19):find 命令概览
 通配符和正则
- 这个肯定是不一样的啊
- 有空区分一下
 
 
- 这个肯定是不一样的啊
 
Linux - Shell - find - 基础的更多相关文章
- 详细介绍Linux shell脚本基础学习
		
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
 - Linux shell入门基础(六)
		
六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...
 - Linux shell入门基础(一)
		
Linux shell入门基础(一): 01.增加删除用户: #useradd byf userdel byf(主目录未删除) userdel -r byf 该用户的属性:usermod 用 ...
 - Linux shell脚本基础学习详细介绍(完整版)二
		
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...
 - Linux shell脚本基础学习详细介绍(完整版)一
		
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
 - Linux Shell 编程基础详解——吐血整理,墙裂推荐!
		
第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...
 - Linux Shell编程基础
		
在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls 显示当前路径下的文件,常用的有 -l 显示长格式 -a 显示所有包括隐 ...
 - Linux shell脚本 基础
		
一.shell中三个引号的用法 1.单引号:所见即所得 例如:var=123 var2='${var}123' echo var2 var2结果为${var}123 2.双引号:输出引号中的内容,若存 ...
 - Linux shell脚本基础
		
程序的组成: 程序:算法+数据结构 数据:程序处理的目标 数据结构:相互之间存在一种或多种特定关系的数据元素的集合 算法:处理数据的方式 编程风格: 面向对象:把所有的操作都转化为对象的方式. 面向过 ...
 
随机推荐
- MVC5+EF6 入门完整教程八:数据迁移
			
https://www.cnblogs.com/miro/p/4164076.html
 - gulp常用插件之yargs使用
			
更多gulp常用插件使用请访问:gulp常用插件汇总 yargs这是一款通过解析参数并生成优雅的用户界面来帮助您构建交互式命令行工具.处理命令行参数的通用解决方案,只要一句代码 var args = ...
 - wxPython学习笔记
			
------------恢复内容开始------------ 学习wxPython 资料 1.wxpython wiki Getting started with wxPython https://w ...
 - DSP定点与浮点计算
			
在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示.一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位.显然,字长越长,所能表示的数的范围越大,精度也越高 ...
 - PAT (Basic Level) Practice (中文)1033 旧键盘打字 (20 分)
			
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
 - CSS: inline、block和inline-block的区别
			
block 块级元素特点: 1.每个块级元素都从新的一行开始,并且其后的元素也另起一行.(很霸道,一个块级元素独占一行) 2.元素的高度.宽度.行高以及顶和底边距都可设置. 3.元素宽度在不设置的情况 ...
 - double加减乘除
			
//四舍五入 public static double toDecimal(Double num){ if(Double.isNaN(num) || num == null){ return 0; } ...
 - jsonp 完成跨域请求注意事项
			
jsonp 不支持post方式请求跨域数据 可以使用get方式请求 !jsonp 不支持post方式请求跨域数据 可以使用get方式请求 !jsonp 不支持post方式请求跨域数据 可以使用get方 ...
 - Selenium3+python自动化013-操作浏览器的Cookie
			
为什么要用Cookie?在测试多个页面时候可绕过验证码输入,直接添加cookie,也可以在添加唯一标识时候使用. 一.操作浏览器的Cookie 1.1.验证码的处理方式 说明:WebDriver类库中 ...
 - 2020牛客寒假算法基础集训营3 G.牛牛的Link Power II (树状数组维护前缀和)
			
https://ac.nowcoder.com/acm/contest/3004/G 发现每个“1”对于它本身位置产生的影响贡献为0,对前面的“1”有产生贡献,对后面的"1"也产生 ...