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

相关推荐

  • 【LINUX编译安装程序】Centos7.4编译安装httpd 2.4.29

    举例:Centos7.4编译安装httpd 2.4.29

    Linux干货 2018-03-17
  • 优云Monitor:大规模Docker平台自动化监控之路

    本文介绍了通过优云Monitor,如何实现大规模容器运维平台的自动化监控需求。 尽管Docker技术目前还处于不稳定的发展与标准制定阶段,但这门技术已经呈现了极其火热的增长状态,却已经是不争的实事。到底有多火热?让我们先来看一张来自国外监控公司DataDog 2016年最新调查报告: 从图中可以看出,自2015年5月后,采用容器技术的应用呈现了30%的大幅增…

    2016-08-05
  • gawk 语法介绍及其实例

    gawk 语法介绍及其实例  §·awk介绍 Linux文本处理三剑客:grep  sed 和 awk 。其中grep是一种文本过滤工具,sed是文本行编辑器,而awk是一种报表生成器,就是对文件进行格式化处理的,这里的格式化不是文件系统的格式化,而是对文件的内容进行的各种排版,进而格式化显示。 在linux之上我们使用awk是GUN a…

    Linux干货 2016-09-22
  • 作业——拷贝命令及其链接库

    1),提示用户输入一个可执行命令的名称 2),获取此命令所依赖额所有库文件列表 3),复制命令至某目标目录(/mnt/sysroot,即把此目录当做根)下的对的路径中 bash,/bin/bash ===> /mnt/sysroot/bin/bash useradd, /usr/sbin/useradd ===> /mnt/sysroot/usr…

    Linux干货 2017-02-04
  • Linux初识

    一 .计算机的关键部位 cpu(运算器 控制器):正给计算机的中枢神经,对程序控制信息的处理和 对数据的运算 存储器:存储程序数据和各种信息指令 Input:起到将各个外部信息传递给计算机的作用 output:将计算机内部的各个信号数据及计算结果输出 二 .一些主流Linux发行版简介 linux发行版:linux只是一个操作系统,搭配其它软件发行的系统就是…

    Linux干货 2016-10-30
  • linux echo命令用法实例

           对于初学者来说,掌握一些基本命令的常用用法是必须的。本文列举了echo命令的几个常用用法并加以实例说明,以作回顾、参考。       echo命令常用作打印输出字符串,根据echo帮助文件可以获得以下信息:        语法 echo…

    2017-05-20