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 22:19
下一篇 2017-04-10 08:24

相关推荐

  • LVM逻辑卷管理相关命令的用法

    前提:创建分区,文件或添加硬盘作为LVM的物理卷 pv(物理卷) 命令用法 1、pvcreate创建pv pvcreate -s    指定PE大小,默认为4M 2、pvremove删除pv 3、pvs,pvdisplay显示pv pvs 显示pv摘要 pvdisplay 详细显示pv 4、pvmove:把卷组中一个物…

    Linux干货 2016-08-30
  • N25-第一周 总结

    一、描述计算机的组成及其功能     CPU:包括运算器、控制器、寄存器、缓存,计算枢纽,网络的包处理、磁盘读写、数学计算等。     内存:加载数据,提高计算速度,程序被加载到内存成为进程运行。     输入:键盘、鼠标     输出:打印机、显示器 二、按系列罗列linux的…

    Linux干货 2016-12-05
  • 虚拟主机的实现

    示例1:基于ip 编辑配置文件,切换到最后一行,增加: <VirtualHost 192.168.1.117:80>     ServerName web1.ams.com     DocumentRoot "/vhosts/web1/htdocs" </VirtualHost&g…

    Linux干货 2016-08-05
  • 六步建立yum仓库

    建立yum仓库

    Linux干货 2018-03-26
  • 基于ssl功能实现mysql主从复制

    基于ssl功能实现mysql主从复制         证书准备:                                  CA证书…

    2016-11-22
  • Homework Week-7 RAID及bash编程

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; fdisk /dev/sda n …

    Linux干货 2016-09-26

评论列表(1条)

  • renjin
    renjin 2017-04-12 11:14

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