shell find& grep

find
find grep常用于命令 awk sed 常用于脚本
语法结构:
find path -option [ -print] [-exec -ok command] {} ;
find 找文件或者目录:
通过什么属性去查找?
1、名字
-name 区分大小写的 -iname 忽略大小写
2、大小 不能知道具体大小 ----》 区间 大于 小于 等于 +单位
-size
文件大于6M 小于10M --> -size +6M -size -10M 大于是+号,小于是-号
3、类型
-type 普通文件f 目录d
4、时间 分成两组—根据时间单位
一、 默认时间单位“天” -atime -mtime -ctime 大于10天 -mtime +10
二、 默认时间单位“分钟” -amin -mmin -cmin
stat 命令 用于查看文件基本属性

access --记录最后一次访问时间(浏览时间)
modify --记录最后一次内容上的修改时间
change --记录最后一次属性上的(内容)修改时间
5、属性 属主 读写
-user 属主
-group 属组
find 支持通配符 * ------任意长度字符
要求: 在linux下找寻以a开头 以.log结尾 排除access.log 在10天前修改的大于5M 小于20M的 用户为root 的普通文件:
find / -name a*.log ! -name access.log -mtime +10 -size +5M -size -10M -user root -type f
将上面要求中匹配到的内容复制到/root下:
法一:
find / -name a*.log ! -name access.log -mtime +10 -size +5M -size -10M -user root -type f -exec cp -a {} ;
注:-exec 表示执行 cp (这里是用的cp命令, 可以使用其他命令如mv) -a 表示完全复制 {} 表示我们匹配到的所有的内容 最后;结尾
法二:
find / -name a*.log ! -name access.log -mtime +10 -size +5M -size -10M -user root -type f | xargs -i cp {} /opt
xargs: -i 确认 {} 匹配到的所以内容
两个命令的区别:
-exec 是find自带的 --> 表示匹配一次 执行一次 --------更稳定
|xargs 匹配所有之后 完整执行

grep
正则 --> grep -E = egrep
参数:
-i 忽略大小写
-n 显示匹配到的内容的行号
-o 只显示匹配的内容
-v 反选

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值