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
下一篇 2018-03-20

相关推荐

  • Linux LVM

    Linux LVM 前言     LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。无论在Linux或者其他类似…

    系统运维 2016-04-24
  • VIM编辑器

    VIM是什么? Vim是从VI发展出来的一个文本编辑器,拥有许多丰富的功能,便于编程开发,在程序员中被广泛使用,是类Unix系统用户最喜欢的功能强大的跨平台文本文件编辑工具。 为什么要用VIM? vi编辑器是所有类UNIX系统下标准的编辑器,他是我们使用Linux系统不能缺少的工具。对于所有类UNIX系统的任何版本,vi编辑器是完全相同的。而vim是从VI发…

    2017-06-03
  • shell– 脚本编程

    编程基础 脚本基本格式 变量 运算 条件测试 流程控制 函数 数组 高级字符串操作 高级变量 配置用户环境 编程基础 程序:指令+数据 程序编程风格:     过程式:以指令为中心,数据服务于指令     对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释…

    Linux干货 2016-08-21
  • linux树状结构

    linux 目录结构   /:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中 /bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。 /boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文…

    Linux干货 2016-08-05
  • test

    test

    Linux干货 2018-02-23
  • Linux运维利器之ClusterShell

    Via:http://blogread.cn/it/article/4573?f=wb 如果你有若干台数据库服务器,突然你想知道它们当前的即时负载情况,你会怎么办?挨个登录上去uptime一下?感觉有点傻,写个shell?浪费时间,直接用ClusterShell吧! ClusterShell的安装与配置     Clu…

    Linux干货 2015-05-12