跨行学Linux运维 通配符及Find
文章目录
- 通配符
- find 查找目录下的文件
- 全部查找 包含隐藏文件
- 按名字查找
- 按模糊名字查找
- 按深度等级查找
- 按时间查找
- 按inode查找
- 按文件大小查找
- 使用find处理结果的三种方式
- 第一种方法 使用 | 管道符
- 第二种方法 使用 -exec
- 第三种方案:使用反引号 \`\` 和 $() 这个两个符号相同
通配符
符号 | 意思 |
---|---|
; | 分隔命令,一次执行多个命令 |
&& | 前一个命令必须执行成功才会执行后一个命令 |
& | 把当前的进程放入后台运行 |
* | 表示所有 查找所有任意字符 |
? | 代表任意一个字符 |
[abc] | 表示或者 中括号内的字符按或者去匹配 |
[a-z] | 表示或者 a-z区间 |
[!abcd] | !表示取反 |
[!abcd] | !加撬棍 取普通字符 |
特殊符号
符号 | 意思 |
---|---|
不加引号 | 可以解析变量,和加双引号相同 但不能识别中间用空为一个整体 |
双引号 | 可以解析变量,可以将引号内视为一个整体,即使又空格也不例外 |
单引号 | 不可以解析变量,单引号内所有内容变为普通字符,没有含义,所见即所得 |
- PS:如果普通命令中无变量,则双引号,单引号没区别
find 查找目录下的文件
find 查找文件
尽量使用相对路径 绝对路径查找文件 尽量不在 / 下 查找
语法格式:
find 在哪里找 找什么类型的
find ./ -type f #在当前路径查找普通文件
find ./ -type d #在当前路径查找目录
-type 类型
类型 | 翻译 |
---|---|
f | 文件 |
d | 目录 |
l | 软链接 |
b | 块设备 |
c | 字符设备 |
全部查找 包含隐藏文件
案例1:查找当前目录所在普通文件 包含隐藏文件
find ./ -type f使用全路径方式查找
find /root/oldboy -type f
案例2:查找当前目录下的所有的目录
find ./ -type d
按名字查找
案例3:按照名称查找文件 -name 区分大小写
find ./ -type f -name "1.txt"find ./ -type f -name "*.txt"
案例4:按名称查找文件 不区分大小写 -iname
find ./ -type f -iname "*.TXT"
案例5:直接按照名称查找文件
find ./ -name "3.sh"
按模糊名字查找
案例6:查找文件区间
find ./ -type f -iname "[1-5].*"
按深度等级查找
案例7: 按照深度等级查找文件 -maxdepth 1
find oldboy -maxdepth 1 -type f
按时间查找
案例8:按时间进行查找文件
find ./ -mtime -1
find ./ -type f -mtime +7
按inode查找
案例9:按inode进行查找文件
查找到并且删除
root@xiaoheng ~/heng]# find ./ -inum 202358662|xargs rm -rf
[root@xiaoheng ~/heng]# tree
.
├── 2.txt
├── 3.txt
├── 4.txt
└── 5.txt
按文件大小查找
案例10:按文件大小查找文件
find ./ -type f -size +10M
什么情况使用文件大小查找文件?
1.磁盘满 查找文件大小 inode
2.磁盘满查找目录大小 block
du 查看文件大小
时间格式:
数字 | 代表 |
---|---|
0 | 查找24小时内文件 |
1 | 查找24-48小时内的文件 |
-1 | 查找1天内 |
+1 | 查找1天前 |
企业中使用find
1、查找7天被修改过的文件 我的日志文件只留7天或者30天 7天或30天以前的内容删除 或者打包备份到备份服务器
2、查找7天内文件被修改过的文件(1天 2天)
系统被攻击 网站被攻击 服务被攻击 恶意攻击 文件会被篡改 网站页面被篡改
使用find处理结果的三种方式
第一种方法 使用 | 管道符
案例1:查找内容进行复制
[root@xiaoheng ~/heng]# find ./ -type f -name "1.*"|xargs cp -t heng/
[root@xiaoheng ~/heng]# tree
.
├── feng
│ └── 1.txt
├── heng
│ └── 1.txt
└── zhi
案例2:查找的内容进行移动
[root@xiaoheng ~/heng]# find ./ -type f -name "1.*"|xargs -i mv {} zhi/
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
└── zhi└── 1.txt
案例3:查找的内容进行删除
[root@xiaoheng ~/heng]# find ./ -type f -name "1.*"|xargs rm -rf
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
└── zhi
案例4:查找到的内容进行打包
[root@xiaoheng ~/heng]# find ./ -type f -name "*.txt"|xargs tar zcvf heng/all2.tar.gz --exclude=feng/1.txt./feng/2.txt
./feng/3.txt
./feng/4.txt
./feng/5.txt[root@xiaoheng ~/heng]# tree
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
│ ├── all2.tar.gz
│ └── all.tar.gz
└── zhi
笔试题:查找30天之前的文件并且删除
第二种方法 使用 -exec
格式: find ./ -type f -name “1.txt” -exec 命令 {} ;
案例1:find结果进行复制
[root@xiaoheng ~/heng]# find ./ -type f -name "*.gz" -exec cp {} zhi/ \;
[root@xiaoheng ~/heng]# tree
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
│ ├── all2.tar.gz
│ └── all.tar.gz
└── zhi├── all2.tar.gz└── all.tar.gz
案例2:find结果进行移动
.
├── feng
├── heng
│ ├── all2.tar.gz
│ └── all.tar.gz
└── zhi├── 1.txt├── 2.txt├── 3.txt├── 4.txt├── 5.txt├── all2.tar.gz└── all.tar.gz3 directories, 9 files
[root@xiaoheng ~/heng]# find zhi/ -type f -name "*.txt" -exec mv {} feng/ \;
[root@xiaoheng ~/heng]# tree
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
│ ├── all2.tar.gz
│ └── all.tar.gz
└── zhi├── all2.tar.gz└── all.tar.gz
案例3:find结果进行删除
[root@xiaoheng ~/heng]# find ./ -type f -exec rm -rf {} \;
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
└── zhi
- PS:使用-exec方式不可以进行打包
第三种方案:使用反引号 `` 和 $() 这个两个符号相同
作用:命令先执行反引号中的,然后在执行整体的
案例1:find结果复制
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
└── zhi3 directories, 5 files
[root@xiaoheng ~/heng]# cp `find ./ -type f` heng/
[root@xiaoheng ~/heng]# tree
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
└── zhi
案例2:find结果移动
[root@xiaoheng ~/heng]# mv $(find feng/ -type f) zhi/
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
└── zhi├── 1.txt├── 2.txt├── 3.txt├── 4.txt└── 5.txt
案例3:find结果删除
[root@xiaoheng ~/heng]# rm -rf `find ./ -type f`
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
└── zhi
跨行学Linux运维 通配符及Find相关推荐
- xenserver 虚拟机扩容lvm磁盘分区的方法_从零开始学Linux运维|35.LVM(逻辑卷管理)的创建...
简单来说 LVM是建立在硬盘和分区之上的一个逻辑层,提高磁盘分区管理的灵活性 如果没有使用LVM,我们直接访问文件系统读取硬盘内容 使用了LVM我们是通过逻辑卷的东西来读取硬盘内容 使用LVM增加一个 ...
- linux apache设置web访问重定向_从零开始学Linux运维|30.Linux的目录结构
1.tree命令 linux下目录结构跟一个倒过来的树一样的,最顶层就是根目录 / tree这个命令就很形象 它够很方便的查看目录结构 使用"yum install tree -y" ...
- python入门与提高实践 老男孩_跟老男孩学Linux运维:MySQL入门与提高实践
第10章 MySQL数据库日志知识与企业应用实践 10.1 MySQL常用日志文件知识 10.2 错误日志的介绍与配置 10.3 普通查询日志的介绍与配置 10.4 二进制日志的介绍与配置 10.5 ...
- 跟老男孩学Linux运维:Web集群实战(运维人员必备书籍)
号外,号外! 1.<跟老男孩学习Linux运维:核心命令案例精讲> 紧张编写中,已过半. 2.<老男孩的MySQL私房菜>即将出版, 紧张编写中,已过2/3. 3.<跟老 ...
- 学Linux运维的前景
提到前景,主要分为两个方面,一个是职业前景,一个是薪水前景.目前市面上大多关心薪水前景.薪水前景:总的来说,运维的薪水普遍比开发人员略低一点.这是因为上手运维工作比开发门槛略低,市场上有很多运维人员处 ...
- 零基础学Linux运维,看这一篇就够了(含30G自学教程笔记)
作为一个10年老运维,在开始这篇文章之前,先送给大家一句话: 干啥不好,非要做运维,听人劝,吃饱饭,趁年轻,换行吧! 好了,不开玩笑了,回到正文中来. 当谈到运维职业发展情况时,很多人都会说运维做不长 ...
- 跟老男孩学 Linux 运维:Web 集群实战
内容简介 本书针对中小规模网站集群的搭建.部署.优化进行了详细讲解,全书可分为三大部分,其中第一部分讲的是 Linux 相关的基础且重要的知识,第二部分针对当下流行的 Web 环境架构(LNMP)的搭 ...
- alpine linux图形界面_跟光磊学Linux运维-Linux入门与基本使用
认识Linux用户 在安装CentOS8.2时,设置过root用户的密码,同时也创建了用户guanglei. 其中root用户是系统自带的管理员账户,也被称为超级用户,root用户接近系统完整的控制能 ...
- 跟着老万学linux运维-vi编辑器中的大小写转换技巧
本节主要是介绍一些工作中使用vi/vim编辑器时,大小写的转换技巧.相信熟悉这些技巧后,对日常运维工作,是非常有帮助的. 所有这些大小写切换,都是在普通模式下进行的. 其中的核心是对"~&q ...
最新文章
- R语言文摘:Subsetting Data
- 李开复「预见2021」:自动化成企业升级转型刚需 | AI日报
- linux服务器部署.net,Linux服务器部署.Net Core笔记:三、安装.NetCore运行环境
- java callback类_利用java8新特性实现类似javascript callback特性
- UVA10294项链和手镯(等价类计数问题)
- 单个字段去重并保留其他字段值
- 【51Nod - 1432】独木舟 (贪心,思维,好题)
- 二、bootstrap4基础(flex布局)
- linux的基础知识——线程
- For in 详解
- python字典保存为excel_python将字典列表导出为Excel文件的方法
- 【原创】STM32低功耗模式及中断唤醒(基于BMI160及RTC)的研究
- 利用Java编写自动关机程序(包括输入、输出、控制电脑自动关机)
- 将字符串中的大写字母转换为小写字母
- 通知 | 关于组织开展湖北省2022年度高新技术企业认定工作的通知
- NH2-PEG-MAL 氨基PEG马来酰亚胺
- AD如何显示贴片数值并打印
- cesium-视频融合
- SDI视频数据流格式简介(频率、速率、YUV、EAV、SAV)
- 计算机使用水平怎么填,计算机水平怎么填写?