linux 文件查找 (locate 与 find)

文件查找

目录

1.locate
2.find

一. locate

    locate命令基于数据库db,所以不能实时更新
    他有如下的特点:
    1.查找速度快
    2.是模糊查找(可能搜到了文件,也有可能搜到了目录)
    3.是非实时的查找
    4.由于权限的原因可能只查找到一部分的文件

    locate 参数:
                        -i  不区分大小写
                        -n N 只列举前N个项目
                        -r  支持正则表达式

    locate xiaoyu
                        搜索名称或路径中带有"xiaoyu"的文件

例:

二. find

    实时查找工具,通过遍历指定路径完成文件查找
    有如下的工作特点:
    1.查找速度略慢
    2.精确查找
    3.实时查找
    4.可能只搜索到用户具备读取和执行权限的目录

    find [查找路径] [查找条件] [处理动作]

         查找路径 :制定具体目标路径,默认为当前目录

         查找条件:
            1.按搜索层级
                    -maxdepth level 最大搜索目录深度,指定目录为第一级
                    -mindepth  level 最小搜索目录深度

    2.根据文件所属组或所属人
         -user UserName   查找文件所属人为指定用户(也可以为UID)的文件
         -group groupName :查找文件所属组为指定组(也可以为GID)的文件

         -uid UserId              :查找属组为指定的UID的文件
         -gid GroupId             :查找属组为指定的GID的文件

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

 3.根据文件名和inode查找
         -name Name         :根据
         -iname Nmae        :不区分文件名称大小写


可以看到,目录下有三个包含“xiaoyu“的文件,当执行不区分大小写时,只显示了一个文件,find为精确查找

         -inum   n                :按inode号查找
         -samefile name           :相同inode号的inode文件

         -links   n                 :链接数为n的文件

注:这里xiaoyu和XIAOYU inode号相同,故链接数为2. 其他链接数为2的均是目录,因为有 . 和 .. 这两个链接

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


注:-regextype posix-extended 表示支持扩展正则表达式

 4.根据文件类型查找
     -type TYPE :
             f : 普通文件
             d: 目录文件
             I:  符号链接文件(软链接)
             s: 套接字文件
             b: 块设备文件
             c: 字符设备文件
             p: 管道文件

查找/var目录下属主为root,且属组为mail的所有文件

5.组合条件
            与:-a
            或:-o
            非:-not

6.根据文件大小来查找
              -size [option]
                 num :(num-1,num]
                 -num :[0,num-1]
                 +num:(num,∞)

查找/etc目录下大于1M且类型为普通文件的所有文件

7.根据时间戳:
            以天为单位:
            -atime 【num】(访问时间)
                    num: 【num,num+1】
                    +num:【num+1,∞】
                    -num:【0,num)
            -mtime (修改时间)
            -ctime   (文件元数据修改时间)

查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

            以分钟为单位:
            -amin 【num】(访问时间)
                                    num:【num,num+1】
                                    +num:【num+1,∞】
                                    -num:【0,num)
            -mmin (修改时间)
            -cmin(文件元数据修改时间)

8.  根据文件权限来查找:
            -perm 【/ |  -】 MODE
                MODE: 精确权限匹配
                /MODE:任何一类对象中的权限中只要能一位匹配就行(或关系)
                                                当权限为大于等于5时,满足其中任意一项即可。
                -MODE:每一类对象都必须同时拥有指定权限(与关系),0表示不关注

                例:find -perm 755    匹配当前目录下权限仅为755的文件
                             find -perm /444   三类对象只要其中一个具有r权限就行
                             find -perm -444   三类对象每个都要具有r权限才可以

查找/etc目录下所有用户都没有写权限的文件

处理动作:
            -print:   默认的处理动作
            -ls   :   类似ls命令
            -delete:   删除查找到的文件
            -fls file :查找到的所有文件的长格式信息保存到指定文件中
            -ok COMMAND {} \ ; 对查找到的每个文件都执行COMMAND命令,执行之前都会询问用户是否执行  

    -exec COMMAND {} \ ; 对查找到的每个文件都执行COMMAND命令,执行之前不会询问用户是否执行
                           {} 用于引用查找到的文件名称自身

参数替换 xargs
        当文件很多时,且需要后续的一些操作,搭配管道符就会出错。xargs 可以和管道符搭配,
        实现read一些命令,例如:

原文地址:http://blog.51cto.com/13572413/2065735

时间: 2024-08-26 13:09:56

linux 文件查找 (locate 与 find)的相关文章

Linux文件查找之find&locate

Linux文件查找之find&locate 一.概述 Linux系统核心的思想之一"一切皆文件",对于这么多的文件,如何快速查找过滤呢?下面我们就看看系统提供的文件查找命令find和locat,熟练使用find命令是运维人员的必经之路 二.find的用法及示例 1.find特点 查找速度略慢 精确查找 实时查找 只能搜索有读取和执行权限的目录 2.find用法 用法:find  [options]  [查找路径]  [ 查找条件]  [处理动作] 查找条件: 根据文件类型查找

Linux文件查找命令find用法整理(locate/find)

Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2.find 实时,精确,功能强大,用法: find 路径 查找标准 查找后动作 (1)路径:. 或者 ./ 均表示当前目录 (2)查找标准: -name 'FILENAME' 文件名精确匹配(支持通配符* ? []) -iname 'FILENAME' 文件名模糊匹配(不分大小写) -regex P

Linux文件查找.md

Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 whereis whereis命令是定位可执行文件.源代码文件.帮助文件在文件系统中的位置.这些文件的属性应属于原始代码,二进制文件,或是帮助文件.whereis 程序还具有搜索源代码.指定备用搜索路径和搜索不寻常项的能力. 语法 whereis [-bmsu] 文件或者目录名称 参数 -b 定位可执

Linux文件查找

Linux文件查找 Linux的基本法则之一为一切皆文件,Linux遵循FHS(Filesystem Hierarchy Standard),文件系统目录标准,FHS采用树形结构组织文件:在使用过程中,我们会遇到知道文件名却不知道文件位置的情况,或者查找某些类型的文件,此时我们需要文件查找的功能. 一.常用查找命令: Locate与finad: locate命令为非实时查找模式:非实时查找,需要根据索引查找,依赖于索引,而索引构建相当占用资源:索引的创建是在系统空闲时由系统自动进行(每天任务):

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兄贴在论坛中:我对本文进行了再次整理,为方便大家阅读: 目录

Linux文件查找命令

1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> - <指定目录>: 所要搜索的目录及其所有子目录.默认为当前目录. - <指定条件>: 所要搜索的文件的特征. - <指定动作>: 对搜索结果进行特定的处理. 如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显

Linux基础之文件查找:locate、find

引言: 在学习Linux中的文件查找时,突然联想到平时用的搜索引擎,在生活中我们想获取什么信息,在google等搜索引擎里面敲入就能列出符合我们条件的相关信息.如果我们不满意搜索结果可以进一步精确我们想查找内容的搜索内容,这在Linux的文件查找中称为精确匹配,但是如果我们虽然知道我们想要的内容,但是找不到特别精确的言辞来形容它因此只能输入描述性内容为搜索条件,这种在Linux的文件查找中可以称为模糊匹配.本文的初衷是希望这篇文章可以解决大家在使用Linux的过程中不至于因为查找某个文件找不到而