引用:http://os.51cto.com/art/200908/141411.htm
http://www.oschina.net/translate/15-practical-linux-find-command-examples
http://www.oschina.net/translate/15-practical-unix-linux-find-command-examples-part-2
find指令是用来搜索文件的指令。英文较好的同学可以直接看man find。
建议在本文找到对应指令后,查找man find 去阅读详细解释。
基本使用方式:
1)现在某个目录下的所有目录和文件(不推荐此方式)
find / // 现在根目录下所有子目录和文件
2)在某个目录下查找具体文件:find <serach dirtection> -name <file name>
find / -name <file name> // 在根目录【/】下搜索文件。
find / -iname <file name> // 在根目录【/】下搜索文件。并且忽略大小写。
find /usr -name <file name> // 在usr目录下搜索文件
3)无错查找:即不提示查找错误。
1,例如:当使用普通用户时,查找根目录会出现很多permission denied(其他用户文件无法访问)
find / -name access_log 2>/dev/null //将标准错误输出到null中。即不显示在命令行中。也可以索引到需要的文件里。
4)模糊查找:使用正则表达式进行模糊查找。
find /etc -name '*srm*'
5)通过文件特征查找的指令:
-amin n 查找系统中最后N分钟访问的文件 -atime n 查找系统中最后n*24小时访问的文件 -cmin n 查找系统中最后N分钟被改变状态的文件 -ctime n 查找系统中最后n*24小时被改变状态的文件 -empty 查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹 -false 查找系统中总是错误的文件 -fstype type 查找系统中存在于指定文件系统的文件,例如:ext2 . -gid n 查找系统中文件数字组 ID 为 n的文件 -group gname 查找系统中文件属于gnam文件组,并且指定组和ID的文件
-perm 根据权限进行查找。
-type 根据文件类型进行查找
6)控制查找的一些选项。
-daystart 测试系统从今天开始24小时以内的文件,用法类似-amin -depth 使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-maxdepth 最大深度。大于此深度的路径不再索引
-follow 遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询-maxdepth [levels] 在某个层次的目录中按照递减方法查找 -mount 不在文件系统目录中查找, 用法类似 -xdev. -noleaf 禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找 -version 打印版本数字
7)查找到文件并执行一定操作:
1,如查找并显示文件属性:在查找后续添加 -ls
2,找到文件并检测文件的MD5验证和。
find / -name "httpd.conf" -ls
find
-iname
"MyCProgram.c"
-
exec
md5sum {} ;
2,其他一些命令
-exec command 查找并执行命令 -fprint file 打印文件完整文件名 -fprint0 file 打印文件完整文件名包括空的文件 -fprintf file format 打印文件格式 -ok command; 给用户命令执行操作,根据用户的Y 确认输入执行 -printf format 打印文件格式
进阶使用方式:
1)混合查找方式:and or ! 三种方式。
1,例如:在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件。
find /tmp -size +10000000c -and -mtime +2