linux 查找出包含某个字符串的所有文件的方法详解

转自:https://blog.csdn.net/h254541060/article/details/48378269

linux系统命令:

1.find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

find默认的寻找路径为当前目录,并且默认的表达式为-print

1、列出某个路径下所有文件,包括子目录。

find /data -name “*”

2、查找在某个路径下所有包含“test abc”字符串的文件

find /data -name “*” | xargs grep “test abc”

3、-name:按照文件名查找

find /data -name “*.txt”

4、-perm:按照权限查找文件
find /data -perm 755  查找权限为755的文件

5、-user和-nouser
find /data -user zhao -print 查找文件属主是zhao的文件
find /data -nouser -print 查找文件属主已经被删除的文件
6、-group和-nogroup
find /data -group test -print 查找文件群组是zhao的文件
7、按照时间
find /data -mtime -5 -print 文件更改时间在5天内的文件
find /data -mtime +3 -print 文件更改时间在3天前的文件
find /data -newer file1 -print 查找比文件file1新的文件

-amin  访问时间   +5 超过5分钟 修改过的    -5 5分钟内修改过的

   -cmin  改变文件属性   +5  

8、按照类型查找
find /data -type d -print 查找所有目录
9、按照大小
find /data -size +1000000C -print 查找文件大小大于1000000字节(1M)的文件

  find /etc -size   +204800  在etc 中找 大于100M 文件 

                          -204800   小于100M文件

                          数据块    1=512字节 =0.5K

 -a  and 多条件逻辑与

        find  /etc -size +204800 -a size -102400 查找文件  大于50M 小于100M 的

10、查找位于本文件系统里面的文件
find /data -name “*.txt” -mount -print
-exec,-ok:find命令对于匹配文件执行该参数所给出shell命令,相应命令形式为: ‘command’ {} \;
-ok 在执行命令前要确认
find /data -type f -exec ls -l {} \;
find /data -name “*.log” -mtime +5 -ok rm {} \;
find /data -name core -exec rm {} \;

注意:-exec 在{}和\之间必须要有空格,同时\;之间不能有空格,否则会报上面的错。 

使用-x dev参数
防止find搜索其他分区
find . -size 0 -exec rm {} \;
删除尺寸为0的文件
11. xargs与-exec功能类似
find /data -type f |xargs grep -i “Mary”
在所有文件中检索字符串Mary
ls *~ |xargs rm -rf 删除所有以~结尾的文件

 

2.locate

 

类似于 Windows 中的everything 

locate  aaa  查找文件名中 含有aaa 的文件  -i 不区分大小写

原理 :查找资料索引库中的文件  

           updatedb 手动 跟新 命令库

           /tmp 临时文件夹中没有索引 

 

3.which

whereis 命令 列出帮助文档的路径

 

4.grep  根据文件内容搜索

grep  -i  关键字  文件名

         -v 排除指定字符串

grep与正则表达式同用
grep “^[^abc]” *.f 提取行首不是abc的行
grep “[0-9]\{3\}[8]” *.f 提取类似xxx8的行,x表示任意数字
grep “a\{2\}” *.f 显示a至少出现两次的行,注意grep是以行处理单位的
grep -n “^$” file 列出空行的行号
-E参数,可以使用”与”和”或”模式
grep -E “abc | def” *.f 显示包含abc或者def的行
ex:
ls -l | grep “^$” 显示目录
ls -l | grep “^d” 显示文件
ls -l | grep “^d..x..x..x” 显示特定权限的目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值