随笔-109  评论-187  文章-25  trackbacks-0
find 命令在linux中是很常用到的一个查找命令,它的功能非常地强大。可以结合正则匹配来搜索系统中的指定的内容,以下我就记录一下这个find常用到的一些用法

 

首先我们来看年find的总体用法

find path option [-print -exec -ok]

其中path是指定在哪个路径中查找内容。如/var下查找内容,option是find中的一些属性值,常用的有-name,-type,-mtime,-ctime,-atime,-user,-group,-nouser,-nogroup,-perm等,[-print -exec -ok]是可选属性值,-print是指把查找到的内容输出到指定的地方,-exec与-ok都是执行另处的command命令,但两都也有一点不同,-exec在执行指定的command时不会给用户显示提示或操作信息,但是-ok就会在有提示询问操作时给用户显示信息,直到用户做了选择时才继续执行。

 

常用的option值说明

-name 指定查找的内容是文件。

-type 指定查找的文件的类型,它有d,l,b,p,f,c等文件类型,d是查找目录,l是查找链接档,b是查找块文件,p是查找管道文件,f是普通文件,c是字符设备文件

-mtime,-ctime,atime都是指按时间查找,-mtime是文件的修改时间,-ctime是文件的创建时间,atime是后找开文件时间

-user是查找指定用户帐号的文件

-group是查找指定组帐号的文件

-nouser查找无用户帐号文件

-nogroup是查找无组帐号文件

 

下面举几个例子说明一下find的用法

(1)我想找出/etc目录下是passw开头的所有文件

   find /etc -name "passw*" 

这个例子中"*"号是正则匹配中的“所有”的意思

(2)我想找出/var/log目录下所有的前5天的.log文件

   find /var/log -name "*.log" -mtime +5

这个例子中"+5"是指5天以前的文件,如是查"-5"则是5天以内的文件

(3)我想找出/home目录下是"ygl"这个用户的文件

   find /home -user "ygl"

(4)我想找出/home目录下是"ygl"这个用户的所有的普通档的文件

   find /home -user "ygl" -type f

(5)我想找出/var/log目录下的所有的.log文件并查看它的详细信息

   find /var/log -name "*.log" -type f -exec ls -l {} \;

这个例子中用到了可选属性-exec用来执行ls命令,其中的-exec或者-ok的用法都要在它所执行的command后面接" {} \;"

(6)我想查找出在/etc中以passw开头的所有文件中有没有ygl这些内容的

   find /etc -name "passw*" -exec grep -in "ygl" {} \;

posted on 2006-11-06 09:34 小小程序程序员混口饭吃 阅读(640) 评论(0)  编辑  收藏 所属分类: linux

只有注册用户登录后才能发表评论。


网站导航: