find命令用法及示例

文件查找

locate,find可是实现在文件系统上查找符合条件的文件

实现工具:locate,find

locate有几下几个特性

1、依赖于事先构建好的索引库;

2、系统自动实现;(周期性任务)

3、手动更新数据库(updatedb) 
/var/lib/mlocate/mlocate.db

工作特性: 查找速度快; 模糊查找; 非实时查找

locate命令用法

locate - find files by name

locate [OPTION]... PATTERN...

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

-c:统计出共有多少个符合条件的文件

-i执行区分大小写的搜索

-r:BRE

find命令:

实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找

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

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

查找起始路径:指定具体搜索目标起始路径;默认为当前目录

查找条件:指定的查找标准,根据文件名,大小,类型,从属关系,权限等等标准进行, 默认为找出指定路径下的所有文件

处理动作:对符合查找条件的文件做出的操作,例如删除等操作,默认为输出至标准输出

查找条件: 表达式:选项和测试

测试:结果通常为布尔型(true ,false)

根据文件名查找:
-name "pattern"
-iname "pattern"
支持glob风格的通配符
*  ?   []   [^]
-regex pattern:基于正则表达式模式查找文件,匹配是整个路径,而非其名

根据文件从属关系查找
-user UESRNAME
-group GRPANME:查找属组指定组
-uid:查找属主指定的UID的所有文件
-gid:查找属组指定的GID的所有文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
-inum n 按inode号查找
-somefile name 相同inode号的文件
-links n 链接数为n的文件

根据文件的类型查找
-type TYPEP:
f:普通文件
d:目录文件
l:符号链接文件
b:块设备文件
c:字符设备文件
p:管道文件
s:套接字文件

组合测试:
与:-a,默认组合逻辑
或:-o
非:-not   !  


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


根据文件大小查找:
    -size [+][-]#UNIT
    #UNIT:(#-1,#]
    -#UNIT:[0,#-1]
    +#UNIT:(#,oo)
根据时间戳查找:
以"天"为单位
    -atime [+|-]#
     #:[#,#-1)
    -#:(#,0]
      +#:(oo,#-1]
    -mtime
    -ctime
以"分钟"为单位
    -amin
    -mmin
    -cmin

根据权限查找:
-perm [/ | -]mode
mode:精确权限匹配
/mode:任何一类用户的权限中的任何一位符合条件即满足:
Any  of  the  permission  bits  mode are set for the file
9位权限之间存在"或"关系:
[root@centos7 sixijie]$ find /tmp/sixijie -perm /001 -ls
[root@centos7 sixijie]$ find /tmp/sixijie -perm /002 -ls

-mode:每一类用户的权限中的每一位同时符合条件即满足;
All of the permission bits mode are set for the file
所有用户都有写权限  <-->  至少有一类用户没有写权限


处理动作:
    -print:输出至标准输出:默认的动作
    -ls:类似于对查找到的文件执行 "ls -l" 命令,输出文件的详细信息:
    -delete:删除查找到的文件
    -fls   /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息,保存至指定文件中;
    -ok COMMAND {} \;:对查找到的每个文件执行由COMMAND表示的命令:
每次操作都由用户确认
       -ok  chown  root root {} \;     {} 占位符,表示找到的文件

-exec COMMADN {} \;:对查找f到的每个文件执行由COMMAND表示的命令:
-exec mv {} {}.danger \;          {} 占位符,表示找到的文件
每次操作都不需要用户确认

注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,

并一次性传递给后面的命令;但是有些命令不能接受过长的参数,此时命令执行会失败;

另一个方式可规避此问题:find | xargs COMMAND

几个简单的练习加深下大家的印象

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

[root@sixijie sh]# find /var/ -user root -group mail

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

[root@sixijie sh]# find /var/ ! \( -user root -o -user lp -o -user gdm \)

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

[root@sixijie sh]# find /var/ -mtime -7 ! \( -user root -o -user postfix \) | wc -l

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

find / \( -nouser -o -nogroup \)  -a -atime -7

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

[root@sixijie sh]# find /etc/ -size +1M -type f

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

[root@sixijie sh]# find /etc/ ! -perm /222

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

find /etc/ ! -perm -111 -ls

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

find /etc/init.d/ -perm -113 -ls

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

(0)
sixijiesixijie
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相关推荐

  • CentOS环境下,ab性能测试功具介绍及使用

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。 性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。 ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型…

    Linux干货 2017-07-22
  • Linux系统启动流程

        下面按照系统的启动顺序来进行逐一的讲解。 一、POST     当我们按下开机的电源后,主板上的芯片组会首先向CPU发出一个reset指令,之后待芯片组检测到电源供电稳定后便撤去reset指令,CPU就会跳转到BIOS中的启动代码位置; BIOS首先要检测关键设备(如内显…

    Linux干货 2015-05-23
  • ldd 的一个安全问题

    我们知道“ldd”这个命令主要是被程序员或是管理员用来查看可执行文件所依赖的动态链接库的。是的,这就是这个命令的用处。可是,这个命令比你想像的要危险得多,也许很多黑客通过ldd的安全问题来攻击你的服务器。其实,ldd的安全问题存在很长的时间了,但居然没有被官方文档所记录来下,这听上去更加难以理解了。怎么?是不是听起来有点不可思议?下面,让我为你细细道来。 首…

    Linux干货 2016-05-05
  • linux 根文件系统层级FHS

    下面介绍认识一下FHS FHS: Filesystem Hierarchy  Standard /bin:所有用户可用的基本命令程序文件; /sbin:供系统管理使用的工具程序; /boot:引导加载器必须用到的各静态文件: kernel,   initramfs(initrd),  grub 等 dev:存储特殊文件或设备文件…

    Linux干货 2016-10-28
  • LVS之nat&dr

    Evernote Export 负载均衡集群设计时的要点:        (1)session保持            session sticky(ip hash)            sess…

    Linux干货 2016-12-01
  • 常用RAID级别浅析

    简介:    RAID为独立冗余磁盘阵列的简称,它可以通过软件或硬件技术把多个较小的磁盘整合成一个较大的磁盘。从而实现较大的 磁盘存储,容错及数据保护功能,较快的数据读写等功能. 实现方式:      硬件实现方式:通过bios参数调整来实现      软件实…

    2017-06-17

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 14:00

    find命令在笔试中几乎是必考的内容,只有多加练习,才能熟练掌握。