find 命令详解

Find 命令详解

find

  实时查找工具, 通过遍历指定路径完成文件查找;

  工作特点:

    查找速度略慢

    精确查找

    实时查找

可能只搜索用户具备读取和执行权限的目录

 

语法:

  find [OPTION]… [查找路径] [查找条件] [处理动作]

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

  查找条件: 指定的查找标准, 可以文件名、 大小、 类型、权限等标准进行; 默认为找出指定路径下的所有文件

  处理动作: 对符合条件的文件做操作, 默认动作为标准输出,输出至屏幕

 

 

查找条件:

(1)根据文件名和inode查找:

   -name “文件名称 支持使用glob

      *, ?, [], [^]

   -iname “文件名称 忽略字母大小写

   -inum n inode号查找

   -samefile name 相同inode号的文件(其实等于查找硬链接,基本不用)

   -links n 链接数为n的文件

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

 find 命令详解

(2)根据属主、 属组查找:

   -user
USERNAME
查找属主为指定用户(UID)的文件

   -group GRPNAME: 查找属组为指定组(GID)的文件

   -uid UserID 查找属主为指定的UID号的文件

   -gid GroupID 查找属组为指定的GID号的文件

   -nouser 查找没有属主的文件或目录

   -nogroup 查找没有属组的文件或目录

 find 命令详解

(3)根据文件类型查找:

   -type TYPE:

     f: 普通文件

     d: 目录文件

     l: 符号链接文件

     s 套接字文件

     b: 块设备文件

     c: 字符设备文件

     p: 管道文件

 find 命令详解

(4)组合条件:

   与: -a

   或: -o

   非: -not, !

 find 命令详解

(5)根据文件大小来查找:

   -size

      # 等于多少的文件

     +# 大于多少的文件

     -# 小于多少的文件

    find 命令详解

(6)根据时间戳:

   以“ 天” 为单位;

     -atime [+|-]#,

         #:
[#,#+1)

         +#:
[#+1,
]

         -#:
[0,#)

     -mtime

     -ctime

   以“ 分钟” 为单位:

     -amin

     -mmin

     -cmin

 find 命令详解

(7)根据权限查找:

   -perm

     222 精确匹配有222权限的文件

     -222 ugo必须全部符合

     +222 ugo有一个符合就行(cen7/222

  find -perm 755 会匹配权限模式恰好是755的文件

  只要当任意人有写权限时, find -perm +222就会匹配

  只有当每个人都有写权限时, find -perm -222才会匹配

  只有当其它人( other 有写权限时, find -perm
-002
才会匹配

 find 命令详解

处理动作:

  -print 默认的处理动作, 打印至屏幕;

  -ls 类似于对查找到的文件执行“ ls -l”命令

  -delete 删除查找到的文件;不能删除非空目录

  -fls file 查找到的所有文件的长格式信息保存至指定文件中

  -ok
COMMAND {} \;
对查找到的每个文件执行由COMMAND指定的命令;

     对于每个文件执行命令之前, 都会交互式要求用户确认

  -exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令

  {}: 用于引用查找到的文件名称自身

   ;是固定用法

 find 命令详解

注意:

1find传递查找到的文件至后面指定的命令时, 查找到所有符合条件的文件一次性传递给后面的命令

   2)有些命令不能接受过多参数, 此时命令执行可能会失败, 下面方式可规避此问题

        find | xargs COMMAND(生产常用的操作方式)

find 命令详解

 

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

(1)
张 洁张 洁
上一篇 2017-04-09
下一篇 2017-04-10

相关推荐

  • Linux发展与应用

                                                      &nbsp…

    2017-04-05
  • 基于kubernetes构建Docker集群管理详解

    一、前言        Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前最新版本为0.6.2。本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍…

    2015-03-10
  • 2016.10.12 成为了马帮的一员!

    未来的6个月内,好好学习天天向上!

    Linux干货 2016-10-19
  • Linux磁盘知识,分区与文件系统

    硬件设备在Linux系统中的表现     设备文件      I/O Ports: I/O设备地址      一切皆文件:         open(), read(), write(), close()   &nbsp…

    Linux干货 2016-08-29
  • 高级文件系统管理

    高级文件系统管理 本章内容  设定文件系统配额  设定和管理软RAID设备  配置逻辑卷  设定LVM快照  btrfs文件系统 配置配额系统 综述 • 在内核中执行 • 以文件系统为单位启用 • 对不同组或者用户的策略不同    &nb…

    Linux干货 2016-09-01
  • 分布式文件系统Mogilefs介绍与安装

    一、分布式文件系统简介: 什么是分布式存储:       分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储…

    Linux干货 2016-05-04

评论列表(1条)

  • renjin
    renjin 2017-04-12 11:14

    详细的总结介绍了find命令的用法,内容很好,建议将命令或代码块入到”插入程序代码”中,文字上注意下缩进