跨行学Linux运维 通配符及Find

通配符

符号意思
分隔命令,一次执行多个命令
&&前一个命令必须执行成功才会执行后一个命令
&把当前的进程放入后台运行
*表示所有    查找所有任意字符
代表任意一个字符
[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.gz

3 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
└── zhi

3 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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值