8-30 文件查找命令find使用说明和练习

文件查找:
 在文件系统上查找符合条件的文件的过程;

文件查找工具:locate, find
  locate: 非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找;
  find:实时查找;查找速度略慢;精确查找;

find命令:
  命令使用格式:find [OPTION]... [查找路径] [查找条件] [处理动作]
   查找路径:默认为当前路径;
   查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件;
   处理动作:对符合条件的文件做什么操作;默认为输出至屏幕;

1、查找条件:
   (1)根据文件名进行查找:
     -name "文件名称": 支持使用glob;
      *, ?, []
     -iname "文件名称":不区分字符大小写,支持使用glob;

-regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称;

(2)根据属主、属组查找:
    -user USERNAME: 查找属主为指定用户的文件;

-group GROUPNAME:

-uid UserID: 查找文件的属主指定uid的文件;
    -gid GroupID:

-nouser: 查找没有属主的文件;
    -nogroup:查找没有属组的文件;

(3)根据文件类型进行查找:
    -type TYPE
     f: 普通文件
     d: 目录
     l: 符号链接
     b: 块设备
     c: 字符设备
     p: 命名管道
     s: 套接字

(4)组合查找条件:
    与条件:-a(可省略),查找条件1 -a 查找条件2 -a ...  :所有条件必须都满足
    或条件:-o,查找条件1 -o 查找条件2 -o ...   :满足一条就可以

非条件:-not, !,-not 查找条件   :不能是查找条件的

!A -o !B = !(A -a B)
    !A -a !B = !(A -o B)

(5)根据文件大小来查找:
    -size [+|-]#UNIT
     单位:k, M, G

#UNIT: (#-1,#]  
     +#UNIT: (#,+oo)
     -#UNIT:[0,#-1]

(6)根据时间戳:
    以“天”为单位
     -atime [+|-]#
      #:[#,#+1)
      +#: [#+1,oo]
      -#: [0,#)
     -mtime
     -ctime

以“分钟”为单位
     -amin
     -mmin
     -cmin

(7)根据权限:
    -perm [/|-]MODE
     MODE: 精确权限匹配
     /MODE:任何一类对象(u,g,o)的任何一位权限符合条件即可;隐含或条件;
      /400
     -MODE:为每一类对象指定的每一位权限都必须同时存在方为符合条件;隐含与条件;

2、处理动作:
   -print: 默认处理动作
   -ls:类似于对查找到的每个文件做"ls -l"的操作;
   -delete: 删除查找到的文件;
   -fls /path/to/somefile:查找到的文件的详细路径信息保存至指定文件中;

-ok COMMAND {} \;
    对每个文件执行指定的命令之前需要用户事先确认;
   -exec COMMAND {} \;
    无需用户确认;

时间: 2025-01-18 08:23:26

8-30 文件查找命令find使用说明和练习的相关文章

linux下find(文件查找)命令的详解

文件查找命令locate和find详解 locate 配合数据库缓存,快速查看文件位置,非实时查找( 数据库查找) find 实际搜寻硬盘查询文件名称 ,实时查找 locate简介 locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在

Linux---find文件查找命令

在Linux下文件查找命令有两个---locate和find 一.locate 命令 只对其生成的数据库经行遍历(生成数据库的命令updatedb),速度快但是locate只能对 文件进行模糊匹配,精度不高,非实时的 -i: //查找文件的时候不区分大小写实例:locate -Ipasswd -n://只显示查找结果的前n行   实例:locate -n 5 passwd 查询之前需要执行   updatedb命令 二.find命令 实时.精确.支持众多查找标准.遍历指定目录中的所有文件完成查找

linux下find和locate文件查找命令详解

文件查找命令: locate命令特点 1.非实时,模糊匹配,查找是根据全系统文件数据库进行的: 2.updatedb, 手动更新生成文件数据库,默认第天凌晨4点02分更新数据库 3.速度快 find命令特点: 1.实时 2.精确 3.支持众多查找标准 4.搜索指定目录中的所有文件完成查找,但速度慢: 格式: find 查找路径 匹配标准 查找到以后的处理运作 查找路径:默认为当前目录 匹配标准:默认为指定路径下的所有文件 处理运作:默认为显示 匹配标准: -name '文件名':对文件名作精确匹

Linux 文件查找命令find,xargs详述

Linux文件查找命令find,xargs详述     <exec 后期讲解> 关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限. 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统). 一.find 命令格式 1.find命令的一般形式为:

Linux文件查找命令find,xargs详述

转自:http://www.linuxsir.org/main/node/137本文进行了整理修订 Linux文件查找命令find,xargs详述 摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解:本文是zhyfly兄贴在论坛中:我对本文进行了再次整理,为方便大家阅读: 目录 版权声明 前言:关于find命令 一.find 命令格式 1.find命令的一般形式为: 2.find命令的参数: 3.find命令选项: 4.使用exec或ok来执

Linux文件查找命令find,xargs详述【转】

转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Linux文件查找命令find,xargs详述 总结:zhy2111314来自:LinuxSir.Org整理:北南南北摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解:本文是zhyfly兄贴在论坛中:我对本文进行了再次整理,为方便大家阅读: 目录

find 文件查找命令

个人觉得find命令是很强大的文件查找命令,可以根据1:文件名 2:文件类型 3:文件时间 4:文件大小 5:目录深度 6:权限 7:正则表达式进行查找 8:查找用户所拥有的文件,并能结合9:exec 进行更多的操作 1:基于文件名 find 查找目录 -name 查找内容 2:基于文件类型 find 查找目录 -type [d 目录] [f 文件] [l 链接] 文件类型: f:文件 l:链接 d:目录 c:字符设备 b:块设备 s:套接字 p:FIFO 3:基于时间查找 find 查找目录

linux下的find文件查找命令与grep文件内容查找命令

linux下的find文件查找命令与grep文件内容查找命令 在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等. (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找. 一.find命令 基本格式:find  path expression 1.按照文件名查找 (1)find / -

find——文件查找命令 linux一些常用命令

find 命令eg: 一般文件查找方法: 1.  find /home -name file  ,  在/home目录下查找文件名为file的文件2.  find /home -name '*file*'  ,  在/home目录下查找文件名包含file的文件3.  find /home -name 'file*'  ,  在/home目录下查找以file开头的文件名的文件4.  find /home -size 512c  ,    在/home目录下查找512kb大小的文件5.  find