文件查找locate 和 find

大纲
一、前言
二、locate
三、find

一、前言

在windows下,我们查找文件,可以在搜索里面,输入文件名或通配符就可以进行搜索。在Linux下,要查找文件可以找locate 或 find命令进行查找,而且这些命令还有其他特别的功能。

二、locate

特点:此命令是非实时查找命令,依赖于索引,因此搜索速度快。但是索引的构建是当系统空闲时由系统自动进行,是个每天任务。因此,你搜索的文件若是索引构建后有变化的,那样就有问题。构建索引可以手动进行,命令:updatedb(有点类似make whatis),但是构建索引需要时间,长短由系统情况而定。

举例:

查找文件ubuntu

blob.png

发现,只要在路径名中带有关键字,或基名带关键字的,都可以被搜索出来,因此,此命令用的不多。

三、find

特点:实时遍历各个文件查找,速度慢于locate.属于精确查找。

命令:find [option]… [查找路径] [查找条件] [处理动作]

查找路径: 默认当前目录

查找条件:

-name 文件名称:支持globbing字符
-user USERNAME: 根据文件的属主查找
-group GRPNAME:根据文件的属组查找
-uid UID:根据UID 查找
-gid GID:根据GID查找
-nouser :查找没有属主的文件
-nogroup :查找没有属组的文

 举例子说明下:

按文件名查找,默认是本路径下:

blob.png

跟locate不一样,只会在文件名那里才会出现要搜索的文件

其他的类似。

下面介绍下没有属主和没有属组的文件:如果把一个用户删除,在属主、属组的位置将被数字代替:

blob.png

因此,查找的时候使用-nouser -nogroup 可以查找到相应的文件

blob.png

组合条件查找

与:-a,同时满足条件(可省略)
或:-o,满足一个即可
非:-not / !,条件取反

blob.png
或者

blob.png

注意,括号需要转义 \( \)

-type 根据文件类型查找

f: 普通文件
d: 目录文件
l: 符号链接
b: 块设备
c: 字符设备
s: 套接字文件
p: 命名管道
比如:查找 /dev 下的字符设备:

blob.png

-size 根据文件大小查找(常用单位 K M G)

= # :如=2 ,显示范围x 1 <x<=2  
+ # :如+2 ,显示范围x  >2
- # :如-2 ,显示范围x  <=1

举例:查找3k-4K(含)以内的文件

blob.png

以时间为单位查找(天为单位)

-atime
  +# :如+2 3天以前
  =# :如 2  2-3天
  -#:如-2  2天之内
-mtime
-ctime

举例

查找修改时间是11天前的文件

blob.png

根据权限查找

-perm [+/-] MODE 
   + 任何一类用户的权限只要能包含对其指定的任何一位权限即可
   - 每类用户指定的检查权限都匹配

举例 
查找其他用户有执行权限的文件

blob.png查找所有用户都没有写权限的文件,因为+的权限是或,前面加个非,就变成了与blob.png

执行动作

看到了我上面的例子,有些在后面加了-ls,这就是执行动作的一种

-print: 默认处理动作,显示
-ls :类似于ls -l
-exec COMMOND {}\; :表示对查找的内容进行处理的动作,{}表示查找到的内容的引用

blob.png

当然我们也可以将查找到的文件直接删除,该权限等等。但是要注意的是,如果直接删除是没有命令交互提示的。

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现 溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

find | xargs COMMAND

blob.png

以上是一些文件查找的用法和体会,在今后的学习中,还会继续慢慢体会。

原创文章,作者:麦鲸,如若转载,请注明出处:http://www.178linux.com/3998

赞 (0)
麦鲸麦鲸
上一篇 2015-05-11 11:52
下一篇 2015-05-11 11:57

相关推荐

  • 自制kickstart文件——完成CentOS系统的自动化安装

    CentOS 系统安装: ·安装程序:anaconda         bootloader–>kernel(initrd(rootfs))–>anaconda ·anaconda:<两种模式>    …

    Linux干货 2016-09-16
  • Linux硬链接和软链接的区别

    一.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 【硬连接】 硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个…

    Linux干货 2016-10-29
  • Iptables入门到进阶

    Iptables入门到进阶 一、前言 Firewall(防火墙): 隔离工具;Packets Filter Firewall(包过滤防火墙);工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件; 防火墙类型 从防火墙的实现形式来分的话,防火墙可以分为软件防火墙和硬件防火墙 硬…

    Linux干货 2017-02-11
  • 正则 grep查找find(xargs)练手

    1、显示当前系统上root、fedora或user1用户的默认shell; ~]# grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); ~]# gre…

    Linux干货 2016-10-24
  • 分布式存储 Mogilefs 部署

    MogileFS是一个开源的分布式存储的解决方案,主要工作组件由三部分组成:Tracker节点:生成映射表存储于DB,并用于接收客户端请求,通过查询数据库对客户端提供后端所存储的真实文件位置DB节点:主要存储数据的元数据信息,可以理解为客户端来获取数据文件时提供的Key和真实存在存储里面的文件名的对照表Storage节点:用于存储文件的节点。工作流程,tra…

    2017-03-04
  • class-7 积累应用

    1、当天课程内容笔记 2、当天练习 3、预习 4、取本机ip地址 [root@6 ~]#  ip addr|egrep -o '(\b([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b\.)(\b([1-9]|[1-9][0-9]|1[0-…

    Linux干货 2016-08-08

评论列表(2条)

  • stanley
    stanley 2015-05-11 11:56

    标签其实应该认真写,增加seo率才能提高贡献率

    • 麦鲸
      麦鲸 2015-05-12 11:22

      @stanley:好的,一定注意。谢谢老师~!