详解Linux中两个查找命令locate和find教程

Linux中有很多查找命令,今天主要讲解locate,find两个命令。

1.locate

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

( 1 )查询系统上预建的文件索引 数据库

/var/lib/mlocate/mlocate.db

注意 :如果这个文件删除了, locate就无法使用了。需手动手动更新数据库( updatedb ),或重启系统,locate才能恢复作用

依赖于事先构建的索引:

索引的构建是在系统较为空闲时自动进行 ( 周期性任务 /etc/cron.daily) , 管理员手动更新数据库 (updatedb)

索引构建过程需要遍历整个根文件系统,极消耗资源

( 2 )工作特点 :

•查找速度快

•模糊查找

• 非实时 查找

• 搜索的是 文件的全路径 ,不仅仅是文件名

• 只搜索用户具备 读取和执行权限 的目录,没有权限,即使数据库有内容,也不显示,为了安全

( 3 ) locate   用法

-i     不区分大小写的搜索

-n #  只列举前#个匹配项目

-r  支持正则

2.find

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

实时查找工具,通过遍历指定路径完成文件查找(find不同于其他命令的习惯,选项只加一个-)

相较于locate,find功能非常强大,除了基于文件名字查找外,还能基于权限,文件类型,大小等好多方式进行查找,所以被我们普遍应用。

( 1 )工作特点:

• 查找速度略慢

• 精确 查找(可以通过正则,通配符,实现模糊查询)

• 实时 查找

• 只搜索用户具备 读取和执行权限 的目录

( 2 )find 用法格式

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

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

查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行; 默认为找出指定路径下的所有文件

处理动作:对符合条件的文件做操作, 默认输出至屏幕 ,还有更多其他的处理动作。

( 3 )查找条件

① 根据 搜索层级

- max depth level   最 大 搜索目录深度,  -1 指定目录为第1 级,当前目录

- min depth level   最 小 搜索目录深度

②  根据文件名和inode 查找:

-name :基于名称的精确查找 ,支持使用文字通配符 *, ?, [], [^]等

-iname :基于名称 忽略大小写 的精确查找查找

-inum :基于 inode 查找

-samefile name :基于 相同inode 号 的查找(查找硬链接)

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

-regex "PATTERN" : 支持正则 ,默认为(emacs 标准的正则),查询正则表达的范围

例:".*\/[a-z].*" 搜索所有以小写字母开头的文件

-regextype egrep -regex 支持egrep 同标准的正则

总结

以上所述是小编给大家介绍的Linux中两个查找命令locate和find教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • linux find下如何统计一个目录下的文件个数以及代码总行数的命令

    今天遇到如题所示问题,网上捣鼓半天,有收获 知道指定后缀名的文件总个数命令:        find . -name "*.html" | wc -l 知道一个目录下代码总行数以及单个文件行数:        find . -name "*.html" | xargs wc -l

  • 每天一个linux命令之locate 命令

    locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行. 1.命令格式: Locate [选择参数] [样式] 2.命令功能: locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locat

  • linux使用find和crontab命令定期清理过期文件

    crontab 命令 crontab 命令是 Linux 中用来设定重复执行命令或脚本的工具.它能够在指定的时间段内,按照需求以某一时间间隔执行命令或脚本. crontab 的基本用法 crontab [-u <user>] [-e|-l|-r] crontab <filename> crontab <filename> 可以读入一个以 crontab 语法书写的文件,并依照文件内的指示执行定时任务.与此同时,crontab -l 能够在标准输出上列出当前用户所有的定时

  • Linux中文件的五个查找命令总结

    Linux的查找命令有5个,分别如下: which:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果: type:用于区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的.如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令.type命令其实不能算查找命令: whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s): locate:相当于find

  • Linux中 find查找命令用法详解

    Linux下查找文件的命令有两个,分别是locate 和 find. locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库.简单介绍下它的两个选项. #locate -i        //查找文件的时候不区分大小写 比如:locate  –i   passwd -n      

  • linux的一个find命令配合rm删除某天前的文件方法

    语句写法:find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 例1: 将/usr/local/backups目录下所有10天前带"."的文件删除 find /usr/local/backups -mtime +10 -name "*.*" -exec rm -rf {} \; find:linux的查找命令,用户查找指定条件的文件 /usr/local/backups:想要进行清理的任意目录 -

  • linux命令之find命令简单概述

    Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限. 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统). 1.命令格式: find pat

  • linux find命令之xargs简单概述

    在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误.错误信息通常是"参数列太长"或"参数列溢出".这就是xargs命令的用处所在,特别是与find命令一起使用. find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样.这样它可以先处理最先获取的一

  • 详解Linux中两个查找命令locate和find教程

    Linux中有很多查找命令,今天主要讲解locate,find两个命令. 1.locate locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库. (

  • 详解Linux 中五个重启命令

    一.Linux 的五个重启命令 1.shutdown 2.poweroff 3.init 4.reboot 5.halt 二.五个重启命令的具体说明 shutdown reboot 在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令. 1.shutdown shutdown命令安全地将系统关机. 有些用户会使用直接断掉电源的方式来关闭li

  • 详解Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node001 ~]# which java /usr/bin/java #查看JDK安装路径 [root@node001 ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [root@node001 ~]# echo $PATH /usr/local/sbin:

  • 详解 Linux中的关机和重启命令

    详解 Linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: -c:取消前一次关机命令 -h:关机 -r:重启 二 shutdown实战 [root@localhost tmp]# date Sat Jul 15 09:28:35 CST 2017 [root@localhost tmp]# shutdown -r 05:30 Shutdown scheduled for Sun 2017-07-16 05:30:00 CST, use 'shutdow

  • 详解Linux中zip压缩和unzip解压缩命令及使用详解

    下面给大家介绍下Linux中zip压缩和unzip解压缩命令详解 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2.把/home目录下面的mydata.zip解压到mydatabak目录里面 unzip mydata.zip -d mydatabak 3.把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip zip -r abc123.zip abc 123.txt 4.把

  • 详解Linux中atime,mtime,ctime的使用场景

    目录 一.文件与文件夹三个时间:atime,mtime,ctime的含义 二.stat命令查看文件的时间 三.ll命令查看文件时间(对照stat命令可验证) 四.测试创建/修改文件的时间 五.常用命令关于文件时间相关 一.文件与文件夹三个时间:atime,mtime,ctime的含义 1.含义 atime(Access Time):文件最近被访问时间 mtime(Modify Time):文件最近内容修改时间 ctime(Change Time):文件最近权限和属性修改时间 2.文件的触发tim

  • 详解python中的三种命令行模块(sys.argv,argparse,click)

    Python作为一门脚本语言,经常作为脚本接受命令行传入参数,Python接受命令行参数大概有三种方式.因为在日常工作场景会经常使用到,这里对这几种方式进行总结. 命令行参数模块 这里命令行参数模块平时工作中用到最多就是这三种模块:sys.argv,argparse,click.sys.argv和argparse都是内置模块,click则是第三方模块. sys.argv模块(内置模块) 先看一个简单的示例: #!/usr/bin/python import sys def hello(name,

  • 详解Java中两种分页遍历的使用姿势

    在日常开发中,分页遍历迭代的场景可以说非常普遍了,比如扫表,每次捞100条数据,然后遍历这100条数据,依次执行某个业务逻辑:这100条执行完毕之后,再加载下一百条数据,直到扫描完毕 那么要实现上面这种分页迭代遍历的场景,我们可以怎么做呢 本文将介绍两种使用姿势 常规的使用方法 借助Iterator的使用姿势 1. 数据查询模拟 首先mock一个分页获取数据的逻辑,直接随机生成数据,并且控制最多返回三页 public static int cnt = 0; private static List

  • 详解Linux 中获取硬盘分区或文件系统的 UUID 的七种方法

    作为一个 Linux 系统管理员,你应该知道如何去查看分区的 UUID 或文件系统的 UUID.因为现在大多数的 Linux 系统都使用 UUID 挂载分区.你可以在 /etc/fstab 文件中可以验证. 有许多可用的实用程序可以查看 UUID.本文我们将会向你展示多种查看 UUID 的方法,并且你可以选择一种适合于你的方法. 何为 UUID? UUID 意即 通用唯一识别码 Universally Unique Identifier ,它可以帮助 Linux 系统识别一个磁盘分区而不是块设备

  • 详解Linux中vi命令大全

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它.Vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里畅行无阻. vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line m

随机推荐