文章目录

  • 通配符
  • 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相关推荐

  1. xenserver 虚拟机扩容lvm磁盘分区的方法_从零开始学Linux运维|35.LVM(逻辑卷管理)的创建...

    简单来说 LVM是建立在硬盘和分区之上的一个逻辑层,提高磁盘分区管理的灵活性 如果没有使用LVM,我们直接访问文件系统读取硬盘内容 使用了LVM我们是通过逻辑卷的东西来读取硬盘内容 使用LVM增加一个 ...

  2. linux apache设置web访问重定向_从零开始学Linux运维|30.Linux的目录结构

    1.tree命令 linux下目录结构跟一个倒过来的树一样的,最顶层就是根目录 / tree这个命令就很形象 它够很方便的查看目录结构 使用"yum install tree -y" ...

  3. python入门与提高实践 老男孩_跟老男孩学Linux运维:MySQL入门与提高实践

    第10章 MySQL数据库日志知识与企业应用实践 10.1 MySQL常用日志文件知识 10.2 错误日志的介绍与配置 10.3 普通查询日志的介绍与配置 10.4 二进制日志的介绍与配置 10.5  ...

  4. 跟老男孩学Linux运维:Web集群实战(运维人员必备书籍)

    号外,号外! 1.<跟老男孩学习Linux运维:核心命令案例精讲> 紧张编写中,已过半. 2.<老男孩的MySQL私房菜>即将出版, 紧张编写中,已过2/3. 3.<跟老 ...

  5. 学Linux运维的前景

    提到前景,主要分为两个方面,一个是职业前景,一个是薪水前景.目前市面上大多关心薪水前景.薪水前景:总的来说,运维的薪水普遍比开发人员略低一点.这是因为上手运维工作比开发门槛略低,市场上有很多运维人员处 ...

  6. 零基础学Linux运维,看这一篇就够了(含30G自学教程笔记)

    作为一个10年老运维,在开始这篇文章之前,先送给大家一句话: 干啥不好,非要做运维,听人劝,吃饱饭,趁年轻,换行吧! 好了,不开玩笑了,回到正文中来. 当谈到运维职业发展情况时,很多人都会说运维做不长 ...

  7. 跟老男孩学 Linux 运维:Web 集群实战

    内容简介 本书针对中小规模网站集群的搭建.部署.优化进行了详细讲解,全书可分为三大部分,其中第一部分讲的是 Linux 相关的基础且重要的知识,第二部分针对当下流行的 Web 环境架构(LNMP)的搭 ...

  8. alpine linux图形界面_跟光磊学Linux运维-Linux入门与基本使用

    认识Linux用户 在安装CentOS8.2时,设置过root用户的密码,同时也创建了用户guanglei. 其中root用户是系统自带的管理员账户,也被称为超级用户,root用户接近系统完整的控制能 ...

  9. 跟着老万学linux运维-vi编辑器中的大小写转换技巧

    本节主要是介绍一些工作中使用vi/vim编辑器时,大小写的转换技巧.相信熟悉这些技巧后,对日常运维工作,是非常有帮助的. 所有这些大小写切换,都是在普通模式下进行的. 其中的核心是对"~&q ...

最新文章

  1. R语言文摘:Subsetting Data
  2. 李开复「预见2021」:自动化成企业升级转型刚需 | AI日报
  3. linux服务器部署.net,Linux服务器部署.Net Core笔记:三、安装.NetCore运行环境
  4. java callback类_利用java8新特性实现类似javascript callback特性
  5. UVA10294项链和手镯(等价类计数问题)
  6. 单个字段去重并保留其他字段值
  7. 【51Nod - 1432】独木舟 (贪心,思维,好题)
  8. 二、bootstrap4基础(flex布局)
  9. linux的基础知识——线程
  10. For in 详解
  11. python字典保存为excel_python将字典列表导出为Excel文件的方法
  12. 【原创】STM32低功耗模式及中断唤醒(基于BMI160及RTC)的研究
  13. 利用Java编写自动关机程序(包括输入、输出、控制电脑自动关机)
  14. 将字符串中的大写字母转换为小写字母
  15. 通知 | 关于组织开展湖北省2022年度高新技术企业认定工作的通知
  16. NH2-PEG-MAL 氨基PEG马来酰亚胺
  17. AD如何显示贴片数值并打印
  18. cesium-视频融合
  19. SDI视频数据流格式简介(频率、速率、YUV、EAV、SAV)
  20. 计算机使用水平怎么填,计算机水平怎么填写?

热门文章

  1. 手把手教你修改Firefox的User-Agent伪装Android微信浏览器
  2. python有哪几种模块_python常用模块有哪些?
  3. CAPL 无法处理 xlsx 表格,Python老大哥曲线助攻
  4. 《逆袭大学——传给IT学子的正能量》进展及最终目录
  5. 计算机实验室安全管理责任书,北京林业大学实验室安全管理责任书
  6. Repeater三级嵌套
  7. Hive mapreduce的map与reduce个数由什么决定?
  8. oracle怎样修改口令,修改Oracle数据库sys口令
  9. 诛仙 第一集 第八章 传艺
  10. 软件测试培训之bug管理