Linux的find命令

使用find命令,可以指定问及那的名称、类别、时间、大小以及权限等,来查找出你想要的文件

语法:

  fiind  [路径] [参数] [-print]

参数详解:

1.-name  按照文件名查找文件

  文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。  可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。

  实例:查找当前文件名以一个小写字母开头,最后是4到9加上.log结束的文件

      find . -name  "[a-z]*[4-9].log" -print

2.-perm   按照文件权限来查找文件

  按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。

  实例:查找当前文件权限为755的文件

      find . -perm 755 -print

3.-user   按照文件属主来查找文件

  -nouser  查找那些属主没有有效帐户的文件

  实例:在$HOME目录中查找文件属主为test的文件

      find ~ -user test -print

      为了查找属主账户颖被删除的文件,可以使用-nouser

       find /home -nouser -print

4.-group:按照文件所属组来查找文件

   -nogroup:查找没有有效组的文件

  实例:在/etc下查找文件所属组为test的文件

      find /etc -group test -print

       查找没有有效所属组的所有文件

      find / -nogroup -print

5.-cmin n:在过去的几分钟内被修改过的文件

  实例:查找5分钟以内被修改过的文件

      find . -cmin -5 -print

       查找5分钟以前没修改过的文件

      find . -cmin +5 -print

      还有atime,ctime,mtime

      mtime和ctime的区别在于,只有修改了文件的内容,才会更新文件的mtime,而对文件更名,修改文件的属主等操作,只会更新ctime。

      atime, 这个就是每次查看文件内容的时候会更新。比如cat操作,而ls操作是不会更新的。

6.-size n:大小为n的文件

  可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为N c;以块计量文件长度只用数字表示即可。  

在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。

  实例:在当前目录下查找文件长度大于1M字节的文件

      find . -size +1000000c -print

      在当前目录下查找长度超过10块的文件(一块等于512字节)

      find . -size +10 -print

7.-type:查找某一文件类型的文件

  实例:在当前目录下查找所有目录

      find . -type d -print

      在当前目录下查找除目录以外的所有类型的文件

      find . ! -type d -print

8.-path:查找时忽略某个目录

  实例:在当前目录下查找不在test子目录之内的所有文件

      find . -path "./test" -prune -o -print

说明:

find [-path ..] [expression] 

在路径列表的后面的是表达式 

-path "test" -prune -o -print 是 -path "test" -a -prune -o -print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 

-path "test" 为 真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如 果 -path "test" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print, 或逻辑表达式为真。

原文地址:https://www.cnblogs.com/Y-HKL/p/5874598.html