首页 > 其他 > 详细

Find命令使用介绍

时间:2014-02-27 19:20:31      阅读:513      评论:0      收藏:0      [点我收藏+]

1.Find是什么?

   Find是Linux下的文件搜索工具,在Linux下有两个命令可以搜索文件,一个是locate,还有一个是Find,locate命令的机制有点类似于whatis,都是依赖于数据库查找,而这个数据库会由系统的自动任务计划去创建,也可以由管理员手动执行updatedb命令生成数据库,但是它的执行时间比较长,而且相当消耗资源,所以在生产服务器上就不要做好操作了.基于数据库的查找都比较快,但是由于数据库不是实时都在生成,所以查找的精确度不高,比如:前天的我添加的一个文件,但是没有生成数据库,那么我去查找这个文件就会找不到,不过他的查找速度比Find快.    

   Find命令是基于本地硬盘去实时查找,不需要依赖于数据库,所以查找速度较慢,但是精确度高,查找消耗资源较大

2.Find使用方法

   Find [options] [path] [查找条件] [处理动作]

   从使用格式上可以看出,find后面的命令都可以省略,查找路径省略,默认为当前目录.查找条件省略,默认为查找路径下的所有文件.处理动作省略,默认为显示在屏幕上,也就是标准输出.

      例: Find /var/log 会把/var/log目录下包括子目录下的所有文件列出来

      find 在查找当前目录时可以省略路径,但是我们一般不这么做,我们会在find后面加一个".",表示当前目录,而find命令我们经常用来归档:如,find . | cpio,这样表示把当前目录归档.

   下面我们来看看find的具体用法,查找路径大家应该都知道吧,那我们从查找条件说起:

1.-name 以文件名称查找:

   根据文件的名字查找,需要查找的文件要是有空格,需要用引号引起来,支持使用通配符机制.

   例:find /etc/ -name "passwd"

   可以从下图中看出,查找的"pass"并未被匹配出来,而"passwd",匹配出来了,所以find命令是精确查找,而通配符也是可以查找到的.注意:查找文件名严格区分大小写,要是不想区分大小写,可以使用find /etc/ -iname "passwd"

bubuko.com,布布扣

2.根据文件名的属主和属组的文件:

   -user:根据文件的属主去查找

   -group:根据文件的数组去查找

bubuko.com,布布扣

bubuko.com,布布扣

3.根据文件的UID和GID查找

   -uid:根据文件的uid查找

   -gid:根据文件的gid查找

bubuko.com,布布扣

bubuko.com,布布扣

4.查找没有属主或属组的文件

   -nouser:查找没有属主的文件

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

bubuko.com,布布扣

5.组合条件

   -a:and,就是条件与啦,比如:"A -a B",就是A和B

   -o:or,就是条件或啦,比如:"A -o B",就是A或B

   -not,!,就是条件非啦,比如:"-not A"就是非A,也可以表示为 !A

bubuko.com,布布扣

bubuko.com,布布扣

 6.根据文件类型查找:

   -f:普通文件

   -d:目录文件

   -c:字符文件

   -l:连接文件

   -p:管道文件

   -s:套接字文件

bubuko.com,布布扣

   剩余的几个使用命令都是类似的,就不一一介绍了

7.根据文件大小查找

   -size +#M :表示查找超过#M的文件

   -size -#M:表示小于#(M-1)的文件,例如:find /etc -size -2M 表示小于1M的文件

   -size #M:表示小于或等于#M,并且在一个单位内变化的文件,例如:find /etc -size 2M,表示小于或等于2M,并且大于1M的,find /etc -size 2G,表示小于或等于2G,并且大于1G的.

bubuko.com,布布扣

bubuko.com,布布扣

8.以时间为查找单位

   -atime[+|-]#:以天为查找atime,其中加减号可以参考上面的size

   -ctime[+|-]#以天为查找ctime,其中加减号可以参考上面的size

   -mtime[+|-]#以天为查找mtime,其中加减号可以参考上面的size

   -amin[+|-]#以分钟为查找atime,其中加减号可以参考上面的size

   -cmin[+|-]#以分钟为查找ctime,其中加减号可以参考上面的size

   -mmin[+|-]#以分钟为查找mtime,其中加减号可以参考上面的size

bubuko.com,布布扣

9.根据权限查找

   -perm mode:精确匹配

   -perm +mode:任何一类用户的任何一类权限匹配既可

   -perm -mode:每类用户要匹配的权限都要存在  

   例如:文件权限是644

   perm 600 是匹配不到的

   -perm 600 是匹配不到的

   +perm 600 是可以匹配到的

     

3.处理默认动作

   1.-print:打印在屏幕上,默认就是这个操作,这里就不详述了

   2.-ls:以长格式输出各文件信息   bubuko.com,布布扣

   3.exec COMMAND {} \;:对查找到的文件执行指定的命令,{}符表示站位符,他是接收前面输出的结果的,并且他的两便都需要有空格,这是固定格式.注意:find会把找到的文件一次传给exec所执行的命令

   bubuko.com,布布扣

   再比如:把/tmp下以txt结尾的文件改成以txta结尾的文件

   执行命令find /tmp -name "*.txt" -exec mv {} {}a \;有点类似于grep中的后向引用

  bubuko.com,布布扣

  4.-ok COMMAND {} \;使用方式跟exec一样,但是是交互式的,就是每次执行都会询问用户是否执行

bubuko.com,布布扣

  5.xargs,也是执行find传送过来的结果,但是与exec最大的不同是xargs是一批批的执行find的结果,而exec是一次性的接收所有的find命令,格式上也与exec不同,xargs使用的是管道接受,并且不需要占位符和反斜线等

   bubuko.com,布布扣

Find命令使用介绍,布布扣,bubuko.com

Find命令使用介绍

原文:http://lidefu.blog.51cto.com/3429777/1363826

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!