(转)Linux find命令详解
时间:2010-12-29 来源:denniswwh
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