Chinaunix首页 | 论坛 | 博客
  • 博客访问: 352546
  • 博文数量: 41
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 784
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-21 20:58
文章分类

全部博文(41)

文章存档

2017年(1)

2010年(1)

2009年(18)

2008年(21)

分类:

2008-06-28 00:38:04

Find pathname – option [-print –exec -ok]
Pathname : 查找的路径 -print find 命令将匹配到的文件输出到标准输出

-exec find命令对匹配到的文件执行exec后面的shell命令,格式为 –exec ‘command’ {} \;

{} \;之间有一个空格

Option:

-name :按照文件名查找

要将文件名用引号引起来。

要想查找目录及子目录中文件名以一个答谢字母开头的文件:

Find . –name “[A-Z]*” –print

要想查找当前目录文件名以两个小写字母开头,跟着是2个数字的.txt文件:

Find . –name “[a-z][a-z][0--9][0--9]*.txt “-print

 

-perm: 按照文件权限来查找

用于找到所有用户具有执行权限的文件,或查看某个用户目录下文件的权限比较方便

在当前目录下查找宿主具有可读、写、执行的文件

 find . –perm  755 -print

查找所有用户具有可读、写、执行(这种情况要小心)的文件

find –perm -7 –print

 

-prune 忽略某个目录

如果在查找文件时候要忽略某个目录,可以使用此选项,但是如果使用了-depth选项则-prune选项就会被忽略。

 

usernouser :按照文件的宿主查找

如在$HOME目录下查找文件宿主为wangp的文件:

find ~ -user wangp –print

查找/etc/password中不存在的用户所属的文件

find /home –nouser –print

 

group nogroup 针对用户所属的组 同上

 

-mtime按照更改时间查找

查找根目录下更改时间在5日内的文件:

find / -mtime -5 –print

查找/home下更改时间在3日前的文件

find /hone –mtime +3 –print

 

-newer 查找比某个文件新或旧的文件:

-newer newer_file  ! oldest_file

查找/home下更改时间比file1 新但是比file2 旧的文件

find /home  -newer file1 ! newer file2 –exec ls –l {} \;

 

如果想查找更改时间在2个小时内的文件,除非刚好有一个文件更改时间在2小时前,否则没有可以比较的文件,为此可以创建一个所需要的日期时间戳,可以用touch

touch –t 02032130 file

find . –newer file –print

 

-type 查找文件类型为type的文件 d l c b p s f

 

-size 按照文件的长度来查找 长度既可以用块也可以用字节来计量,字节用Nc 来标识

查找文件长度大于1M的文件:

find . –type f –size +1000000c –print

查找刚好为100字节的文件

find /home –size 100c –print

查找长度小于10块的文件:

find . –szie -10 –pirnt

 

-depth 可以先匹配所有文件,再在子目录中查找

find 从根目录查找一个名为con.file的文件,它先将匹配所有的文件然后在进入子目录查找

find / -name “conf.file” –depth –print

 

-mount 在当前文件系统下查询,不进入其他文件系统

 

-exec ok 将查到的文件使用shell命令来执行在/log目录中查找更改时间在5日前的文件并删除它们:

find /log  - type f –mtime +5 –exec rm {} \;

exec的安全模式为 ok, 它可以在执行某些shell时候给予提示

[root@wangp myproject]# find ./test -mtime -2 -ok rm {} \;

< rm ... ./test > ?

 

xargs: 在使用-exec选项处理匹配到的文件时,find命令将匹配到的文件一起传递给exec执行,有些系统对exec的命令长度有限制,在find运行几分钟后,出现“参数列太长”“参数溢出”

阅读(1776) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~