码迷,mamicode.com
首页 > 系统相关 > 详细

小蚂蚁学习Linux(5)——文件搜索命令find和grep(重要)

时间:2015-10-31 23:10:44      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:

find 命令    find    【搜索范围】 【搜索条件】

例如:    find    /    -name    install.log    意思:在根目录下查找文件名为install.log的文件。

注意:

    1. 在生产服务器上应避免这种大范围的搜索,会非常耗费系统资源。

    2. find搜索的文件名必须是一模一样的才能找到,要想进行模糊搜索,就要使用通配符,能够识别的通配符有三种,分别是:    *    ?    []    (这三个通配符的功能和作用貌似在各种语言中都是通用的,详细介绍请参考博文:http://my.oschina.net/woshixiaomayi/blog/507939

find命令的三个常用选项:

    -iname    不区分大小写查找    如:    find    /root    -iname    install.log

    -user      按照所有者搜索(不太常用)  如:    find    /root    -user    root    所有者是root的文件有哪些

    -nouser    搜索没有所有者的文件(这个很实用)    如:    find    /root    -nouser    解释一下哈:一般来说,没有所有者的文件就是垃圾文件,但是有两个特殊情况需要特别注意一下:

    1.    由内核产生的无所有者文件,是很重要的,不能删除,例如:根目录下的proc,sys两个目录中的文件。

    2.    外来文件,如:U盘,光盘等从windows中拷贝而来的文件。window中不是没有所有者这个概念,而是因为它忽略了这个概念。

find    按照文件修改时间查找

find    /var/log    -mtime    +10    查找10天前修改的文件

选项:    -atime    文件访问时间

            -ctime    改变文件属性的时间

            -mtime    修改文件内容的时间

时间段介绍:    -10  10天以内修改的文件

                      10    第10天当天修改的文件

                      +10    10天以前修改的文件

    过去的时间段知道怎么表示了,那么未来10天怎么表示呢?你开玩笑的吧!知道未来的事,我就去买彩票了,谁还在这里写博客……

find    按照文件大小查找    find    .    -size    25k    查找当前目录下文件大小等于25k的文件。

-25k    小于25k的文件

25k     等于25k的文件

+25k    大于25k的文件

注意:按照文件大小查找的时候有个要点,值得注意一下,不然会出错:kb的时候一定要小写,如25k;mb的时候一定要大写,如:25M。唉,Linux的开发人员也是逗我们玩……

通过i节点查找文件    find    /root    -inum    123456    其实,这个命令跟ls    -i    命令有些互补,前者可以通过i节点查找文件名,后者是通过文件名查看i节点。

find    命令还可以使用逻辑判断

find    /etc    -size    +20k    -a    -size    -50k    

含义:查找/etc文件下大于20k并且小于50k的文件。逻辑与,两个条件必须都要满足。

find    /etc    -size    +20k    -o    -size    -10k

含义:查找/etc文件下大于20k或者小于10k的文件。逻辑或,两个条件满足其中一个即可。

下面说一个重要的知识点:

    find    /etc    -size    +20k    -a    -size    -50k    -exec ls -lh {}\

    含义: 查找/etc文件下大于20k并且小于50k的文件,并且把查询到的文件,以长格式和人性化文件大小显示出来。

    固定格式    -exec <命令>    {}\    这里的命令,是对之前查询出来的结果的操作。

    再例如:    find    /etc    -size    +20k    -a    -size    -50k    -exec rm -rf {}\    将查找出来的文件删除,很方便吧,假如查找出来10000个文件,不会这个命令,就等着哭吧,但是有了这个命令就会so easy,老板再也不怕你删不完文件。

grep命令

grep    【选项】    字符串    文件名        在文件当中匹配符合条件的字符串

选项:    -i    忽略大小写    -v    排除指定字符串(相当于反选)

如:    grep    ‘hello world’    abc.php    在abc.php中查找包含了hello world的行并返回。

那么总结一下,find和grep的区别:

    find命令:在系统当中搜索,符合条件的文件名。

    grep命令:在文件当中搜索,符合条件的字符串。


学PHP的小蚂蚁  博客  http://my.oschina.net/woshixiaomayi/blog

小蚂蚁学习Linux(5)——文件搜索命令find和grep(重要)

标签:

原文地址:http://my.oschina.net/woshixiaomayi/blog/524395

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!