遍历系统文本全文

干了一件傻事,全文遍历查找一个字符串,将经过写下来


find / -type f -fstype ext4 -exec sh -c \
'file="{}";type=$(file $file);[[ $type =~ " text" ]] && echo $file' \; \
|xargs grep abcdef


思路

1、用find在一定范围找出所有文件

2、在find子命令中执行file命令判断文件类型,过滤出文本文件

3、在文本中过滤出字符串


为了提高性能,加入-user 和-mtime 作为限制条件进行过滤


-user 加运行程序的用户


全命令

find / -type f -fstype ext4 -user root -exec sh -c \
'file="{}";type=$(file $file);[[ $type =~ " text" ]] && echo $file' \; \
|xargs grep abcdef



-mtime 修改时间, -60 代表两个月内的新文件,


为了提高grep的效率,这里采用fgrep,fgrep不支持正则,干的活比grep更少,所有更快。

为了避免匹配结果过多造成刷屏,给grep加上参数-l,只显示匹配的文件名。



全命令

find / -type f -fstype ext4 -mtime -60 -exec sh -c \
'file="{}";type=$(file $file);[[ $type =~ " text" ]] && echo $file' \; \
|xargs fgrep -l abcdef


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值