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

Linux命令之locate、find搜索命令

时间:2015-09-02 19:13:16      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:locate、find

Linux命令之locate、find搜索命令

     locate命令用于查找文件,比find命令的搜索速度快,它有一个数据库,这个数据库每天的例行工作(crontab)程序来执行updatedb。运行:updatedb在/var/lib/slocate/ 下生成 slocate.db 数据库即可快速查找。

     示例:现场拷贝/etc/grub2.cfg到/tmp/grub2.cfg,这时如果不更新数据库,用locate搜索grub2.cfg是无法搜索到/tmp/下的grub2.cfg的

技术分享   

     find语法:find pathname -options [-print -exec -ok ...]

     常见参数选项:

         pathname: find命令所查找的目录路径。如用.来表示当前目录,用/来表示系统根目录

 -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称

           -print: find命令将匹配的文件输出到标准输出

            -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command‘ { } ;,注意{ }和;之间的空格

              -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

            -name:按文件名查找,支持使用globbing;-iname:不区分字符大小写,支持使用globbing

            -perm:按文件权限来查找

            -user:按文件属主来查找

           -group:按文件所属组查找

      -uid UserID:查找文件的属主指定uid的文件

     -gid GroupID:查找文件的属组指定gid的文件

           -mtime:-n 、+n,按文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项

         -nogroup:查找无效所属组的文件,即该文件所属的组在/etc/groups中不存在。

          -nouser:查找无效属主的文件,即该文件的属主在/etc/passwd中不存在。

           -newer:FILE1! FILE2,查找更改时间比文件FILE1新但比文件LIFE2旧的文件。

            -type:查找某一类型的文件,如:b:块设备文件;d:目录;c:字符设备文件;p:管道文件。l: 符号链接文件;f:普通文件

          -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计

           -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找

          -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息

           -mount:在查找文件时不跨越文件系统mount点

          -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件

            -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中

          -amin n:查找最后N分钟访问的文件

         -atime n:查找最后n*24小时访问的文件

          -cmin n:查找最后N分钟被改变文件状态的文件

         -ctime n:查找最后n*24小时被改变文件状态的文件

          -mmin n:查找最后N分钟被改变文件数据的文件

         -mtime n:查找最后n*24小时被改变文件数据的文件


        该命令支持查找条件逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为:

              and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足

               or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足

              not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件

             !A -o !B = !(A -a B)

        !A -a !B = !(A -o B)

        示例:

   1、查找/var目录属主为root,且属组为mail的所有文件;

技术分享

   2、查找/usr目录下不属于root、bin或hadoop的所有文件;

技术分享

   3、查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;

技术分享

   4、查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;

技术分享

   5、查找/etc目录下大于20k且类型为普通的所有文件;

技术分享

   6、查找/etc目录下所有用户都没有写权限的文件;

技术分享

   7、查找/etc目录下至少有一类用户没有执行权限的文件;

技术分享

   8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;

技术分享


本文出自 “一万小时定律” 博客,请务必保留此出处http://daisywei.blog.51cto.com/7837970/1690782

Linux命令之locate、find搜索命令

标签:locate、find

原文地址:http://daisywei.blog.51cto.com/7837970/1690782

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