linux命令——find

简介:find是Linux系统中的常用命令(应用程序)之一。它是用来在指定目录层次结构(指定目录的子目录以及子目录的子目录)中查找符合指定条件的文件和目录

一:语法结构

  find [directory-list] [option] [expression]

二:参数详解

      directory-list : 用来指定find要搜索的目录结构,当为指定directory-list时,默认是当前目录。

  option :忽略

  expression :  指定的查找文件的规则(条件),当没有指定是默认规则是‘-print’()。可指定多个规则,多个规则之间可以进行逻辑运算(or-and).

               可在指定规则前加!(感叹号),取规则的反义。

          规则的计算默认是从左到右,除非表达式存在圆括号。

          在规则中使用圆括号,方括号[],问号?星号*,需要转义字符(/),以阻止shell对其解释。

三:expression(规则)

  find的全部规则大概有20个左右,在此我只列觉我个人认为有用并且常用的几个。

  * 在expression规则中 (+|-)n是表示一个十进制整数,+n表示比n大 ,-n比n小,n等于n。

       -name pattern:根据pattern(pattern可支持(`*', `?',and `[]')匹配文件或目录 ),来查找符合指定pattern的文件名。

    备注:该规则对大小写敏感,可通过-iname对大小写不敏感

        -user uname:查找文件归属用户名为uname的文件

    备注:可类比出文件所属组(-group gname),已经不属于(-nouser uname)。

  -perm 777:权限模式,这个规则你必须了解linux的文件权限模式。 

        -ctime n:文件最近该变(change)的时间 

  -mtime n:文件修改(modified)时间

  -type (d|f|l):根据文件类型查找

  -exec  命令2 {} \; : 上一个命令的结果放入{},并作为参数传递给命令2。注意:{}与\;是执行-exec的必备条件。注意:之间有空格。

四:讨论

4.1 find dir x y

     用x,y表示条件。dir表示待搜索的目录,语法中的option参数被省略了。

   该条命令说明find在dir目录中,先搜索符合x条件的文件,然后判断该文件是否符合y规则,注意如果文件x条件不符合就不回判断y条件了,因为x与y是用空格分割,空格相当与AND运算符(短路)。

4.2 find dir x - or y

  类比4.1,该条命令是短路与

五:示例

 当前目录: 

  [root@wxapp216 mydoc]# ls -l
  total 8
  -rw-r--r-- 1 root root 11 Aug 2 13:50 find.txt
  -rw-r--r-- 1 root root 4 Aug 2 13:56 find.vv
  drwxr-xr-x 2 root root 21 Aug 6 09:07 mydom1

    eg1: 

  [root@wxapp216 mydoc]# find . -iname "*D*"
  ./mydom1
  ./find.vv
  ./find.txt

    eg2:  

  [root@wxapp216 mydoc]# find . -iname "*D*" -name "*m*"
  ./mydom1

 eg3:  

  [root@wxapp216 mydoc]# find . -iname "*D*" -name "*m*" -exec ls -l {} \;
  total 4
  -rw-r--r-- 1 root root 23 Aug 6 09:07 ttt.txt

  eg4:  

  [root@wxapp216 mydoc]# find . -perm 755
  .
  ./mydom1

  

posted @ 2019-08-05 17:07  爱我-中华  阅读(293)  评论(0编辑  收藏  举报