文件查找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

相关推荐

  • MapReduce数据流

    Hadoop的核心组件在一起工作时如下图所示: 图4.4高层MapReduce工作流水线   MapReduce的输入一般来自HDFS中的文件,这些文件分布存储在集群内的节点上。运行一个MapReduce程序会在集群的许多节点甚至所有节点上运行mapping任务,每一个mapping任务都是平等的:mappers没有特定“标识物”与其关联。因此,任意的map…

    Linux干货 2015-05-13
  • iptables基本知识

    1)Linux下的防火墙概念 a、一般谈到Linux下的防火墙,我们都会首先想到iptables,其实更确切的叫法应该是Netfilter/iptables,iptables和Netfilter其实是存在差别的。 b、尽管它们经常被用来相互替换使用,Netfilter是用来实现Linux内核中防火墙的Linux内核空间程序代码段,它要么被直接编译进内核,要么…

    Linux干货 2016-07-16
  • 破解root口令

    这里主要介绍一下centos6和7root密码的破解方法 这里先说一下centos7的口令破解方法 破解CentOS7的root口令方法一 启动时任意键暂停启动  按e键进入编辑模式  将光标移动linux16开始的行,添加内核参数rd.break 按ctrl-x启动 这是进来之后的界面 然后查看用户的登录信息 echo $UID 显示结…

    2017-07-14
  • man与FHS

    man:          1 使用者在shell中可以操作的指令或可执行档     2 系統核心可呼叫的函数与工具等     3 一些常用的函数(function)与函数库(library),大部分是C的函数库(libc) &n…

    Linux干货 2016-10-30
  • 马哥教育网络班22期+第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -rf /etc/skel/ /home/tuser1 [root@localhost ~]# chmod&…

    Linux干货 2016-09-19
  • 计算机基础及Linux基础

    计算机基础与Linux入门 计算机组成及功能 Linux常见发行版 Linux重要哲学思想 Linux文件系统层级结构及文件命名规则 如何获取Linux命令的使用帮助 Linux常用命令及示例 1.1 计算机组成及功能 1.1.1 计算机的五大部件 计算机的主要组成部分有: 1、CPU:运算器 2、控制器、寄存器(内部存储)、缓存; 3、存储器:内存,RAM…

    Linux干货 2016-12-04

评论列表(2条)

  • stanley
    stanley 2015-05-11 11:56

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

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

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