找回密码
 立即注册
Qt开源社区 门户 查看内容

Linux shell 操作命令find

2019-8-30 16:10| 发布者: admin| 查看: 1114| 评论: 0

摘要: Linux shell 操作命令find Linux shell 命令行 让你真正开始 Linux之旅,本文描述Linux 操作命令find1、简介 find 命令提供了 相当多的查找条件,功能强大;find 命令主要作用是沿着文件层次结构向下遍历、匹配符 ...


Linux shell 操作命令find

    Linux shell 命令行 让你真正开始 Linux之旅,本文描述 Linux 操作命令find

1、简介

    find 命令提供了 相当多的查找条件,功能强大;find 命令主要作用是沿着文件层次结构向下遍历、匹配符合条件的文件,并 执行相应的操作

2、用法/命令格式
    find[-H][-L][-P][-D {debugopts}][-O {level}][starting-point...][expression]

    3、常用参数解析  --  参数 选项

        -H、-L 和 -P 选项  用于 符号 连接 处理;如果 搜索 路径 没有 被 指定,则默认 当前 所在 路径 为 搜索路径

    4、常用参数解析  --  表达式

        搜索 路径 之后的 一连串的表达式 用于 匹配 搜索 的结果;如果 没有 表达式,则 默认 -print 参数 表达式

    4.1 Actions --  执行 表达式

        执行 表达式 一般 会有 副作用(例如 打印 一些 信息 输出到 标准输出 )并且 返回 true or false (取决于 执行 是否 成功);例如 -print 将 信息 输出到 标准输出

    4.1.1 -print

        默认 -print 参数

    4.1.2 -exec

        -exec 是 find 命令对找到的文件执行的动作,这个动作就是对找到的文件执行命令;在这里说明一下{}和;,{}其实它就是一个占位符,在 find 命令的执行过程中会不断地替换成当前找到的文件;而";" 是-exec 的命令结束标记,因为规定-exec 后面的命令必须以;结束,但;在 shell 中有特殊含义,必须要转义,所以写成\;

    4.2 Global options --  全局 表达式

        全局表达式 影响 任何 结果输出,通常 返回 true

    4.2.1 -type

    • 字母 "f" 表示该文件是一个普通文件

    • 字母 "l" 表示该文件是一个链接文件

    • 字母 "b" 表示该文件是块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,一类特殊文件

    • 字母 "c" 表示该文件是一个字符设备文件(character)

    • 字母 "d" 表示该文件是一个目录

    • 字母 "p" 表示该文件为命令管道文件

    • 字母 "s" 表示该文件为sock文件


    4.3 Positional options -- 位置(正则)  表达式

        Positional optiona affect only tests or actions which follow them.  Positional options always return true.

    4.4 Operators  -- 逻辑 表达式

        Operators  join  together the other items within the expression.  They include for example -o (meaning logical OR) and -a (meaning logical AND).

    备注

    • -and:匹配如果操作符两边的测试条件都是真。可以简写为-a。注意若没有使用操作符,则默认使用-and

    • -or:匹配若操作符两边的任一个测试条件为真。可以简写为 -o

    • -not:匹配若操作符后面的测试条件是假。可以简写为一个感叹号(!)

    • ():把测试条件和操作符组合起来形成更大的表达式。这用来控制逻辑计算的优先级。默认情况下, find命令按照!从左到右的顺序计算。经常有必要重写默认的求值顺序,以得到期望的结果。即使没有必要,有时候包括组合起来的字符,对提高命令的可读性是很有帮助的。注意因为圆括号字符对于shell来说有特殊含义,所以在命令行中使用它们的时候,它们必须用引号引起来,才能作为实參传递给find命令。通常反斜杠字符被用来转义圆括号字符


    4.5 TEST(帮助手册就这么写的)

    4.5.1 -inum -- inode number
      ## 根据 inode 搜索文件# find /etc -inum 786776/etc/hosts

      5、范例

      5.1 打印 当前 目录 文件 列表信息
        ## -print 也可 不写,一般 默认 打印 # find . [-print]

        5.2 模糊 匹配
          ## -i : 忽略 大小写## *、?: 模糊匹配,* 匹配 多个 任意字符, ?匹配 单个 任意字符# find . [-i] -name "*.tx?" [-print]

          5.3 多个 文件 类型查找
            ## -or : 逻辑 或## !: 逻辑 非# find . \( -name "*.txt" -or ! -name ".csv" \)

            5.4 联合 查找 并 查看 相信 信息
              ## -perm: 用户权限## -user: 用户名 # find . -type f \( -name "*.php" -perm 777 -or ! -user root \) -exec ls -l {} \;

              5.5 查找 大文件
                # find . -type f -size +800M

                备注

                    -exec 是 find 命令对找到的文件执行的动作,这个动作就是对找到的文件执行命令,上面的命令就是 ls -l {}。在这里说明一下{}和;,{}其实它就是一个占位符,在 find 命令的执行过程中会不断地替换成当前找到的文件,相当于”ls -l 找到的文件”。而;是-exec 的命令结束标记,因为规定-exec 后面的命令必须以;结束,但;在 shell 中有特殊含义,必须要转义,所以写成\;

                作者

                有话说

                    从本文开始 您将正式开始Linux shell 命令(本文是来自本人博客的摘要,有兴趣的可以阅读博客 -- 博客地址在个人简介文章中有说明)!感谢您的阅读,希望有所收获! 



                微信公众号 欢迎 扫码 关注







                ----------------------------------------------------------------------------------------------------------------------
                我们尊重原创,也注重分享,文章来源于微信公众号:石头逍遥,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
                ----------------------------------------------------------------------------------------------------------------------

                鲜花

                握手

                雷人

                路过

                鸡蛋
                
                公告
                可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了