强大的find命令

作者: 寂寞的原子 | 来源:发表于2017-05-24 01:37 被阅读39次

作为一个命令行重度用户,强大的命令行搜索功能是必不可少的。这里介绍一下系统自带的find命令,最近结合fzf使用感觉棒棒哒。

find

find的用法如下:

$ find [<options>] <paths> [<expressions>]

<options>是一些可选的配置,具体参见文档。
<paths>是搜索的范围,可以有多个目录。
<expressions>是表达式,可以有多个,下面具体说说这些表达式。

每一个表达式都可以由一些条件一个操作组成,每个条件都有一个返回值,通过逻辑运算符连接,如果省略逻辑运算符,则相当于AND运算。

一些常用的条件:

  • -type:限定搜索对象的类型
    • -type f:普通文件
    • -type d:目录
  • -name-iname:匹配项目名字,-iname不区分大小写
    • -name hello:完全匹配
    • -name *hello*:使用通配符
  • -path-ipath: 匹配项目绝对路径,-ipath不区分大小写
    • -path /home/gerald/file:完全匹配
    • -path *hello*:使用通配符
  • -prune:剪枝
    参考 Stack Overflow
    这个操作使find不再搜索匹配到的文件夹的内容,起到剪枝的作用。始终返回true,因此如果使用OR运算,后续表达式将不再执行,就起到了过滤匹配到的项目的作用。

一些常用的操作:

  • -print:将结果输出到stdout,返回true
    如果没有指定操作,则默认使用-print

一些栗子:

  • 列出当前目录下所有文件
    $ find . -type f
    $ find . -type f -print
    
  • 匹配文件名字
    $ find . -type f -name foobar
    $ find . -type f -name foobar -print
    
  • 剪枝
    $ find . -name foobar -prune
    $ find . -name foobar -prune -print
    
    匹配名字是foobar的项目,如果是文件夹,则不再继续搜索子文件夹。
  • 过滤
    $ find . -name foobar -prune -o -print
    
    匹配名字是foobar的项目,由于有OR操作,匹配结果将被丢弃,不匹配的结果继续执行,因此最终得到的是名字不为foobar的项目。
    $ find . -name foobar -prune -o -name foo* -print
    
    在剩下的结果中匹配foo开头的项目。如果省略-print,则相当于最外层应用-print,如下:
    $ find . \( -name foobar -prune -o -name foo* \) -print
    
    这时名字是foobar的项目也会包括进去,只是剪枝依然有效。

相关文章

  • 文件搜索命令 find grep

    文件搜索命令 find <非常强大> find 命令 find [搜索范围] [搜索条件] 搜索文件 find /...

  • 强大的find命令

    find 命令是linux系统常用的命令,它的功能相当强大。结合exec,xargs 等更是威力无穷。比如我们要查...

  • 强大的find命令

    作为一个命令行重度用户,强大的命令行搜索功能是必不可少的。这里介绍一下系统自带的find命令,最近结合fzf使用感...

  • linux命令—find查找文件

    find 命令功能非常的强大,支持的参数很多,这里简单讲解一些平时常用的命令查找命令的基本格式为: ** find...

  • find locate whereis which

    查询文件的位置 1 find: 最强大的查询文件命令 find 指定路径 文件名称 后续操作find uwsgi....

  • Linux命令21天打卡,第13天0304

    命令 find find命令,非常强大,也非常实用,分两次完成,今日第一次 。 1)在/root/isTester...

  • 21天掌握Linux命令,第13天

    20190108 作业 ,命令 find 注:find命令,非常强大,也非常实用,分两次完成,今日第一次 。给大家...

  • Linux常用文件搜索命令

    最强大的搜索命令:find 首先进行一点说明,find命令是我们在Linux系统中用来进行文件搜索用的最多的命令,...

  • find:文件查找命令

    Linux find命令用来在指定目录下查找文件。find命令功能强大,选项比较多,能够记住的选项就那么几个,正好...

  • find命令详解

    1. find命令简介 find命令主要用于文件搜索,它的功能非常强大,可以根据不同的标准搜索任何文件,可以在任何...

网友评论

    本文标题:强大的find命令

    本文链接:https://www.haomeiwen.com/subject/xucnxxtx.html