(转)Linux find命令详解

find的使用格式如下:

$ find <指定目录> <指定条件> <指定动作>

- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。

- <指定条件>: 所要搜索的文件的特征。几种常用的条件包括:

 


+n 大于n,

-n 小于n

n 等于n

-amin n

查找系统中最后N分钟访问的文件

-atime n

查找系统中最后n*24小时访问的文件

-cmin n

查找系统中最后N分钟被改变状态的文件

-ctime n

查找系统中最后n*24小时被改变状态的文件

-empty

查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹

-group gname

查找系统中文件属于gnam文件组,并且指定组和ID的文件

-mmin n

修改时间在n天的以内的.

-name 匹配文件名

-iname 不区分大小写匹配文件名

-size n[cwbk]

文件大小小于(-),大于(+)n的文件。

c-bytes,

b- for 512-byte blocks (this is the default if no suffix is used)

k for Kilobytes (units of 1024 bytes)

 

- <指定动作>: 对搜索结果进行特定的处理。

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

使用实例

$ find . -name ‘my*’

搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

$ find . -iname ‘my*’

搜索当前目录(含子目录,以下同)中,所有文件名以my,My,mY,MY开头的文件。

$ find . -name ‘my*’ -ls

搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

find /etc/rc.d -name ‘*crond’ -exec file {} ; 查找/etc/rc.d目录下面所有以crond结束的文件,并使用file指令查看其属性,注意:exec和file间是一个空格,file和{}间是一个空格,{}和;之间是一个空格,;是一个整体。

find . -mtime -5 -print

查几天以内的

find . -mtime +5 -print

查几天以外的

find -daystart -mtime 5

#从当天算起第5天被修改过的文件

find / -name ‘*.rmvb’ -exec chmod a-x {} ;

一次性修改rmvb文件的属性。

find / -user manager -exec rm {} ;

假如一个用户已经被删除,然后再删除非用户目录下的文件

find / -name core -print -exec rm -rf {} ;

上述命令表示由根目录开始查找名为core的文件或目录,然后显示在屏幕上,之后再将所查到的结果全部删除。最后提醒大家,在使用-exec参数时,必须以“;”结尾,否则,系统会提示“find遗漏-exec参数”,命令将无法执行。

其他技巧

无错误查找

find / -name access_log 2>/dev/null

在Linux系统中Linux Find命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用Linux Find命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用 Linux Find命令来查询这些目录或者文件。当普通用户使用Linux Find命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入

参考资料

Linux的五个查找命令

Linux Find 命令使用详解

15 Practical Linux Find Command Examples

15 Awesome Linux Find Command Examples

Some Useful Unix File Finding Commands

原文:http://www.daniel-journey.com/archives/437

posted @ 2011-11-01 11:08  wwh  阅读(457)  评论(0编辑  收藏  举报