百度空间 | 百度首页 
               
 
查看文章
 
LINUX 中find命令小结
2007-04-23 11:17

     

Linux中find常见用法示例

·find path -option [ -print ] [ -exec -ok command ] {} \;
#-print 将查找到的文件输出到标准输出
#-exec command {} \;     -----将查到的文件执行command操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户

====================================================

-name filename             #查找名为filename的文件
-perm                       #按执行权限来查找
-user   username            #按文件属主来查找
-group groupname            #按组来查找
-mtime -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime   -n +n              #按文件访问时间来查GIN: 0px">-perm                        #按执行权限来查找
-user   username            #按文件属主来查找
-group groupname            #按组来查找
-mtime -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime   -n +n              #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2              找文件,-n指n天以内,+n指n天以前
-ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2              #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size     n[c]              #查长度为n块[或n字节]的文件
-depth                      #使查找在进入子目录前先行查找完本目录
-fstype                     #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size     n[c]              #查长度为n块[或n字节]的文件
-depth                      #使查找在进入子目录前先行查找完本目录
-fstype                     #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount              &


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" {} \;

例子:在root以及子目录查找不包括目录/root/bin的,greek用户的,文件类型为普通文件的,3天之前的名为test-find.c的文件,并将结构输出,命令如下:
           find / -name "test-find.c" -type f -mtime +3 -user greek -prune /root/bin -print
下面看一下exec选项:
-exec:对搜索的结构指令指定的shell命令。注意格式要正确:"-exec 命令 {} \;",在}和\之间一定要有空格才行。

例子:对上述例子搜索出来的文件进行删除操作,命令如下:

           find / -name "test-find.c"



类别:Linux | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2007-04-23 19:52 | 回复
Linux网站论坛 地址:www.linuxdiyf.com
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu