您的位置:首页 > 运维架构 > Linux

Linux学习-常用命令-文件搜索命令(1)-文件搜索命令find

2020-08-09 23:40 381 查看

在介绍搜索命令之前,我们要先明确一个小的概念,那就是在Linux中首先需要考虑的并不是怎么搜索比较方便,而是能不能尽量不用搜索。在创建文件的时候,应该将文件的目录结构规划的很好,方便进行管理。就像东西不要乱放,这样我们就不需要很多时间去找,去搜索。搜索会占用大量的系统资源,
一般不建议使用。好,接下来就开始文件搜索命令的介绍。

find命令

功能描述:文件搜索
执行权限:所有用户
语法:find [搜索范围] [匹配条件]
注:常用的匹配条件(筛选条件):文件名称,文件大小,时间属性
find是一个非常复杂的命令,原因在于它的选项十分繁多,由于这里只是简单介绍一下常用的一些命令,所以一些简单的日常操作就能够得以实现了。
第一个系列的选项

搜索条件选项

  1. -name——通过文件名来搜索。
    同时,这里的搜索是精准的搜索。什么是精准的搜索呢?就是你输入的文件名是什么,所查找到的文件名就必须是什么,多一个少一个字符都不行。比如Windows中的搜索就是模糊搜索,而Linux则是精准搜索。
    问题又来了,如果我想要在Linux中实现模糊搜索,有没有办法呢?当然有。可以使用**扩住所搜索的文件名,*代表任意字符,这样就可以搜索到文件名中含有该字符串的文件了。
    举一反三, 文件名 *则可以搜索到以该文件名字符串为头的文件。
    如果你记得开头是abc,后面还有3个字符,但是不记得后面的字符是什么了,可以使用?来匹配单个字符,用abc???即可搜索到。
    总结来说, *号可以匹配任意字符,?号只可以匹配单个字符。
    (-iname选项,可以不区分带小写的搜索文件名称)
  2. -size——通过文件大小来搜索。
    +n——大于,-n——小于,n——等于
    例如:find -size +204800
    查找大于100MB的文件
    这里的n是Linux中的一种单位,称为数据块,一个数据块等于512字节,也就是0.5K。
    比如这里100MB=102400K=204800数据块
  3. -user——通过所有者来搜索。
  4. -group——通过所属组来搜索。
  5. -amin,-cmin,-mmin ——根据时间属性来搜索。
    a——访问时间,c——文件属性,m——文件内容
    理解起来比较抽象,举个例子吧。
    例如:find /etc -cmin -5
    在/etc目录下查找5分钟内被修改过属性的文件和目录。(+表示超过多长时间,-表示多少时间之内)
  6. -type——根据文件类型查找,f——文件,d——目录,l——软链接文件。
  7. -inum——根据i结点查找。

附加搜索选项

1.-a——用在两个部分之间,表示两个搜索条件同时满足。
2、-o——用在两个部分之间,表示两个搜索条件之中只需满足其中一个。
例如:find /etc -size +163840 -a -size -204800
表示在/etc目录下查找大于80MB小于100MB的文件。
3.-exec/-ok 命令 {} \;——对搜索的结果进行指定的操作。{} \是固定格式。
例如 find /etc -name init -exec ls -l {} \;
表示在/etc目录下查找init为名称的文件并显示其详细信息。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: