locate,find文件查找

locate | find


*** locate 路径中包含字符串 即匹配;

     -n#     指定显示结果前几个

     -b      只匹配路径名中的基名    

     -c      统计符合条件的文档数量

     -r BRE    可使用正则表达式

    依赖于已建立的数据库  速度较快  类似whatis搜索实现  

    数据库:

        系统自动周期实现

       updatedb 手动更新数据库

       索引构建极消耗资源 建议在空闲时

    特点:

        速度较快  模糊查找  !非实时查找

locate ./  *.repo

本目录下.repo结尾的文件或目录

*** find [OPTIONS] [查找起始路径][查找条件][处理动作]

     起始路径:指定目录下搜索 默认当前目录;

     查找条件:指定查找标准, 文件名 大小 类型等

     查找动作:对匹配到的对象进行的操作 默认为输出至标准输出 输出至屏幕

    特点:

        查找速度略慢    精确查找    实时查找

    查找条件:

    表达式:选项;标准

        标准: 执行结果为布尔值

  查找 链接目录下的文件    需要 /.*/   以 / 结尾

     1.根据文件名查找:      支持通配符

         -name "patt"               find /etc -name  passwd[[:alnum:]]

         -iname "patt"不区分大小写      find /etc -iname *passwd

         -inum #  按inode号查找

         -samefile file  相同inode号的文件 

         -links n      链接数为n的文件 

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

     2.根据属主属组查找:    find /testdir -uid=1000

         -user   USER  ==>  -uid UID  属主 为指定用户 的文件

         -group GROUP ==>  -gid GID  属组 为指定组 的文件

             存在 用户被移除 文件无属主的情况

         -nouser 查找 无属主的文件       find /testdir -nouser

         -nogroup 查找 无属组的文件

]#find /testdir -user zjj -type p

    /testdir下 属主为zjj的 管道文件

]#find /tmp -not \( -user root -o -iname "*zz*"\)

    /tmp 目录下 属主不为root 且 基名不包含zz的文件

     3.根据类型查找: find /dev -type s -ls

      -type TYPE

         b: 块设备文件

         c: 字符设备文件

         d: 目录文件

         f: 普通文件

         l: 符号链接设备 软链接

         p: 管道文件

         s: 套接字文件

     4.文件大小查找:

        -size [+|-]#UNIT

             常用单位:K,M,G 相对 单位精确查找

    

            #UNIT:(#-1,#]

            -#UNIT:[0,#-1]

            +#UNIT:(#,∞)

]#find /tmp -size +10K

    /tmp下大于10K的文件  11K-∞

     5.根据时间戳查找:

      以 天   为单位:

         -atime [+|-]# 

             #:[#,#-1)   前 第3天

             -#:(#,0]    前 3天以内

             +#:(∞,#-1)  3天之前

         -mtime

         -ctime

    

      以 分钟 为单位

         -amin

         -mmin

         -cmin

]#find /etc -mmin -3

    3分钟内修改过的文件

 

     6.根据权限查找:

        -perm [/|-] mode      mode 精确查找    

]#find -perm 421

    查找权限为421的文件

        -mode 任何一类用户(u,g,o)的 每一位(r,w,x)都要有对应权限

]#find ./ -perm -624

    文件权限包含mode即匹配

        /mode 任何一类用户(u,g,o)的 任何一位(r,w,x)符合条件即满足

]#find ./ -perm /124

    匹配当前目录u=1 或g=2 或o=4 的文件

    满足其中之一即匹配

]#find ./ -perm /011

    不管u权限 g或o有写权限即匹配

===========

    组合标准:

        与 -a  默认的逻辑

        或 -o 满足之一则匹配

        非 -not,!

    处理动作:

        -print 输出至标准输出

        -ls 类似对查到的文件执行 ls -l 输出文件详细信息

find ./ -d zjj -amin -5 -not -perm /222 -ls

    

        -delete 删除查找到的文件!

        -fls /PATH 将文件详细的信息 保存至指定文件

        -ok CMD {} \; 对查找到的 每个文件执行CDM命令 会逐条要求确认

            固定格式\; {}表示查到的所有文件

        -exec 不交互 直接执行

]#find ./ -nouser -a -nogroup -ok chown zjj:zjj {} \;

     查找当前目录下 无属主无属组的文件 全部添加属主属组zjj

-exec CMD {} \; 相对-ok 无确认环节 直接执行CMD

]#find ./ -perm /002 -exec mv {} {}.danger \;

    当前目录下 o有写权限的 文件名加上.danger后缀

!find查找到所有文件后会 将结果一次行传递给命令,有些命令不能接受过长的参数

找到的文件过多会导致命令执行失败可用  find …| xargs CMD

  xargs把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理

练习:

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

]#find /var -user root -group mail

2、查找/var目录下不属于root、lp、gdm的所有文件

]#find /var -not  \( -user root -o -user lp -o -user gdm \)

3、查找/var目录下最近一周内其内容修改过,同时属主不为 root,也不是postfix的文件

]#find /var -mtime -7 -not \( -user root -o -user postfix \)

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

]#find / \( -nouser -o -nogroup -atime -7 \) -ls

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

]#find /etc -size +1M -type f

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

]#find /etc -not -perm /222

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

]#find /etc -not -perm -111

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

]#find /etc/init.d/ -perm -113

原创文章,作者:Jasper,如若转载,请注明出处:http://www.178linux.com/35366

(0)
JasperJasper
上一篇 2016-08-15 09:24
下一篇 2016-08-15 09:24

相关推荐

  • 马哥教育网络班N22期+第1周课程练习beta2

    马哥教育网络班N22期+第1周课程练习  1.计算机的组成及其功能 1.1 计算机的组成 根据冯·诺依曼体系结构,将计算机分为五个主要的部件: CPU:运算器 CPU:控制器 RAM:存储器 Input:输入设备 Output: 输出设备 其功能分别为: 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处…

    Linux干货 2016-08-15
  • ansible实践

    本偏文章以上图拓扑部署 首先准备了6台为centos7的主机(确保selinux和iptables不会成阻碍!关闭他们) 我们先来安装ansible吧! 配置EPEL源过后使用 yum -y install ansible  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 出师不利啊,安装ansible就失败了。!!!!!! 看了一下…

    Linux干货 2017-01-27
  • 文本处理三剑客之awk

    一、知识整理 1、awk报告生成器,格式化文本输出 发明人:a.k.a. Aho,Kernighan,weinberger awk程序通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块三部分组成。program通常是放在单引号或双引号中。 基本用法:awk [] ‘program’ var=value fiel… pr…

    Linux干货 2016-09-26
  • grep,find用法-2

    1、显示当前系统上root、fedora或user1用户的默认shell; grep -E “^(root|fedora|user1)>” /etc/passwd | cut -d: -f1,7 [root@bogon Desktop]# grep -E “^(root|fedora|user1)\>” /etc/pass…

    Linux干货 2017-08-04
  • 第一次写的linux脚本

    刚开始学的时候,都是一些基本的命令,总是无法把它们联系到一块去,现在刚开始接触脚本,顿时感觉压力好大,基础命令如果记不牢,很有可能就挂了,下面我把近几天学习的一些脚本命令及练习拿来分享一下,供大家参考,同时加深我的记忆。 首先是写脚本的格式,我这里用vim编辑器来写的脚本,因为它的色彩非常明艳,易于区分。基本格式如下: #!/bin/bash 第一行一般为调…

    Linux干货 2017-08-05
  • Linux运维学习历程-第六天-Linux用户、组以及权限管理

    本章内容    Linux的安全模型    用户和组    用户和组管理命令    文件权限    默认权限    特殊权限    ACL访问控制 一:3A认证       &nb…

    Linux干货 2016-08-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 10:39

    总结的很好,find命令是以后工作或笔试中常出现的考点,需要熟练掌握。