文件查找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
下一篇 2015-05-11

相关推荐

  • 19道小米网运维工程师笔试真题,你能通关吗?

    第一部分:Linux基础 题目1: 有一百个图片文件,它们的地址都是 http://down.xiaomi.com/img/1.png http://down.xiaomi.com/img/2.png … 一直到http://down.xiaomi.com/img/100.png 批量下载这100个图片文件,并找出其中大于500KB的文件。 题目2: 一个文…

    2017-09-08
  • 关于文件查找和解压缩

                     文件查找和解压缩在文件系统上查找符合条件的文件,文件查找的工具有两个,locate 和find文件查找分为:          &nbs…

    系统运维 2016-08-18
  • 第9天:压缩,任务,rpm包

    http://note.youdao.com/yws/public/redirect/share?id=b3e4fc37bdd98991638dce69ce3eea53&type=false

    Linux干货 2016-08-18
  • 计算机网络知识,脚本编程_第八周练习

    Q1:请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Sw…

    Linux干货 2016-12-25
  • 图解Linux终端类型

    个人浅见 欢迎指正

    Linux干货 2016-10-16
  • 创建CA证书

    创建CA证书 CA证书         CA 也拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。       &nb…

    Linux干货 2017-07-23

评论列表(2条)

  • stanley
    stanley 2015-05-11 11:56

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

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

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