Linux下的find命令详解

Linux下的find命令详解

在linux下有两种查找符合条件文件的命令,是locate和find。我们来说说find这个命令。

find:

  • 实时查找工具,遍历查找指定路径下的所有的文件来找到符合条件的文件。
  • 特点:查找文件比locate速度略慢,查找文件很精确,并且是实时进行查找的。
  • 使用方法:find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
  • 查找时的起始路径:默认是当前目录,或者是指定具体要搜索目标的起始路径。
  • 查找条件:可以根据文件名、文件大小、文件类型、从属关系、权限等标准来进行查找。默认为查找指定路径下的所有文件。
  • 处理动作:对找到符合条件的文件做之后的处理操作,比如删除、修改等,默认是输出到标准输出。

按照文件名来查找:

  • -name “pattern” — 按照字符串来查找
  • -iname “pattern” — 不区分文件名的大小写来查找,支持glob风格的通配符(* ? [ ] [^})
  • -regex pattern — 按照正则表达式模式来查找,查找的是整个文件路径,而不是文件名。

按照文件从属关系查找:

  • -user USERNAME:查找属主指定用户的所有文件;
  • -group GRPNAME:查找属组指定组的所有文件;
  • -uid UID:查找属主指定的UID的所有文件;
  • -gid GID:查找属组指定的GID的所有文件;
  • -nouser:查找没有属主的文件;
  • -nogroup:查找没有属组的文件;

按照文件类型查找:-type TYPE

  • f: 普通文件
  • d: 目录文件
  • l:符号链接文件
  • b:块设备 文件
  • p:管道文件
  • s:套接字文件

组合语句时用的逻辑选项:

  • 与:-a, 默认为这个组合逻辑;
  • 或:-o
  • 非:-not, !

按照文件大小查找:

  • 格式:-size [+|-]#UNIT
  • 常用单位:k, M, G
  • #UNIT:(#-1,#]
  • -#UNIT:[0,#-1]
  • +#:(oo,#-1]

按照时间戳查找:

以“天”为单位:

  • -atime
  • -mtime
  • -ctime

以“分钟”为单位:

  • -amin
  • -mmin
  • -cmin

按照权限查找:

  • 格式:-perm [/|-]mode
  • mode:精确权限匹配;
  • /mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”关系;
  • -mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;9位权限之间存在“与”关系;

一些处理动作:

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

注意:find传递查找到的文件路径到后面的命令时,是查找出所有符合的文件路径并一次给后面;
有些命令不能接受过长的参数,用另外一种方式避免此问题: find | xargs COMMAND

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92735

赞 (1)
华龙华龙
上一篇 2018-03-20 12:07
下一篇 2018-03-20 17:23

相关推荐

  • 制作kickstart文件和引导镜像

    kickstart制作: (1)通过手动编辑,莫个kickstat模板进行修改:如根目录下的anaconda-ks.cfg (2)通过图形界面制作kickstart文件,可以安装system-config-kickstart, 通过kickstart配置程序打开某个模板,如anaconda-ks.cfg,在图片界面下的修改, 基本配置:默认语音,键盘类型,时…

    2017-11-14
  • 字符串切片和yum的用法和rpm的编译安装

    1、冒泡法对数组内数据排序 2、源码安装http2.2.29     1.配置/etc/yum.repos.d/base.repo              2.安装group组:Development too…

    Linux干货 2016-08-30
  • 马哥教育网络班21期-第1周课程练习

    1、  描述计算机的组成及其功能。 计算机由硬件系统和软件系统两部分组成。硬件系统由运算器,控制器,存储器,输入设备和输出设备组成.     运算器:计算机中进行算术运算和逻辑运算的部件。     控制器:计算机的控制中心。协调和指挥计算机系统的操作。  &n…

    Linux干货 2016-07-12
  • test

    test

    Linux干货 2017-02-14
  • mysql并发控制

    并发控制: 锁:Lock 1、锁类型 : 读锁:共享锁,可被多个读操作共享; 写锁:排它锁,独占锁; 2、锁粒度: 表锁:在表级别施加锁,并发性较低; 行锁:在行级另施加锁,并发性较高; 3、锁策略:在锁粒度及数据安全性之间寻求一种平衡机制; 存储引擎:级别以及何时施加或释放锁由存储引擎自行决定; MySQL Server:表级别,可自行决定,也允许显式请求…

    2016-11-18
  • RAID各级别特性介绍

        RAID全称为独立磁盘冗余阵列(Redundant Array of Independent Disks):基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。     RAID通常被用在服务器电脑上,使用完全相…

    Linux干货 2016-06-22