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)
上一篇 2016-08-15 09:24
下一篇 2016-08-15 09:24

相关推荐

  • 08.04 笔记总结

    1.ps axo  user,ruser,group,rgroup,cmd  //  ruser  表示程序发起的用户,一般是指系统当前的用户  //  user  表示程序的所有者。在大数情况下,两个用户都是系统当前的用户, 之后当程序被赋予suid的时候,可能user会发生变化。 2….

    Linux干货 2016-08-08
  • N26-第八周

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     网桥(birdge):工作于OSI模型中的数据链路层,是连接两个局域网的一种存储/转发设备,能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器,可以分割冲突域。   &nb…

    2017-03-08
  • RAID[Redundant Array of Independent Disks | 独立硬盘冗余阵列 ]

    前言 一个技术要知其然还要知其所以然 RAID 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列 RAID的基本思想 其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到…

    Linux干货 2016-05-20
  • 磁盘管理总结

    linux磁盘管理总结 一、向linux主机添加硬盘 不同类型的硬盘,linux需要不同的驱动。kernel需要驱动,硬盘是基本的硬件设备,驱动一般不需要安装了。 (1)linux内核的设计架构,使用了模块。除了系统必须的驱动,一般以模块方式加载到内核中。内核的模块放在。/lib/modules内。 (2)linux一切皆文件,设备也是文件,ls -l 查看…

    Linux干货 2016-08-29
  • 网络班N22期第二周博客作业

    一、Linux常用文件管理命令及用法。  (1)、cat,由第一行开始显示内容,并将所有内容输出     用法:cat [OPTION]… [FILE]…      常用选项:     &nbsp…

    Linux干货 2016-08-22
  • 浅谈DNS基本原理以及实现方法(二)

             DNS作为互联网服务的一个基础型服务,了解和掌握DNS服务的原理和配置将是每一个运维人员必备的技能,这就如同闯荡江湖的侠客不但要有的招式,还要懂的运用这些招式的心法一样,接下来我将从DNS的正反向解析、主从同步、子域授权以及Bind view这四个方面来揭开它神…

    Linux干货 2015-12-19

评论列表(1条)

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

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