linux初学者笔记(8):find 和grep命令

find [搜索范围] [搜索条件]

1.例子

当搜索范围为/root,搜索条件为-name的时候,这表示在/root目录下按文件名搜索,而且是全名搜索

在范围上,我们必须考虑效率的问题,如果搜索范围大,那么效率无疑是低的

2.通配符匹配

*     匹配任意内容

?    匹配任意一个字符

[]    匹配任意一个中括号里的字符

注意,这种匹配需要加双引号

问题1:在/root目录下怎么搜索以3或2结尾的文件?

3.各种搜索条件

不区分大小写  -iname

 

按照所有者来搜索,-user,需要指定user名

搜索没有所有者的文件,-nouser,不需要指定user名,也就是不需要参数

没有所有者的文件,一般是垃圾文件,可以删除。但是有一部分文件是由操作系统内核产生的,这一部分文件就不是垃圾文件,不能删,比如在proc和sys目录下的东西;还有一种是外来数据,比如在windows下的文件拷贝到u盘上,再传给linux,那么没有所有者。

 

 

按时间搜索

时间分为以下种类

atime  文件访问时间

ctime   改变文件属性时间

mtime  修改文件内容时间

以mtime为例子

+4  4天前修改的

4    4天前的当天的修改

-4   4天内的修改

可以看到有一部分隐藏文件。

 

 

按照文件大小来搜索

find . -size 25k   表示搜索当前目录下大小为25k的文件

25k   就是等于25k的文件

+25k   就是大于25k的文件

-25k  就是小于25k的文件

其他的都差不多

  

例子中做了一些测试,不支持浮点数,而且k不能为大写

当不带单位时,也是显得很奇怪。原来,它的默认单位时一个数据块。。

而且,如果单位是M的话一定要大写。。。。

这个选项比较少用,比较反人类。。。

 

按i节点来搜索文件

-inum

 

4.补充内容多条件查询

如果我想要搜索文件,其大小是介于1k到10k之间的呢?

-a   and

-o   or

 

-exec  执行,这个格式末尾会有 {} \;                   (注意这里面的空格)

 

 

grep [选项] 字符串 文件名

-v 取反

-i  忽略大小写

加了-v之后就搜索文件里面不含有size字符串的行

 

grep和find的区别

find是完全匹配,采用通配符匹配

grep是包含匹配,采用正则表达式匹配

 

posted @ 2015-08-07 16:26  猪头劲  阅读(356)  评论(0编辑  收藏  举报