Linux基础:文件搜索find的语法比较简单,常用的参数只有-name、-type、-ctime等几个,初学者可以直接看第二部分的例子。如果需要详细了解参数说明,可以参考find的帮助文档。find的语法如下:find(option)(parameter)常用例子按文件名搜索列出当前目录及其子目录下的所有文件find。在当前目录find中找到名为11.png的文件。-name"11.png"查找当前目录下的所有jpg文件find.-name"*.jpg"查找当前目录下的jpg文件和png文件find。-name"*.jpg"-o-name"*.png"查找当前目录中不以png结尾的文件查找。!-name"*.png"根据正则表达式查找备注:正则表达式比原来想象的要复杂,而且支持几种。可以参考这里查找当前目录下文件名全为数字的png文件。寻找。-regex"\./*[0-9]+\.png"根据路径搜索,找出当前目录下路径中包含wysiwyg的文件/路径。寻找。-path"*wysiwyg*"按文件类型搜索以按-type过滤文件类型。f普通文件l符号链接d目录c字符设备b块设备s套接字pFifo例如在当前目录find中查找路径中包含wysiwyg的文件。-typef-path"*wysiwyg*"限制搜索深度以找出当前目录中的所有png,不包括子目录。寻找。-maxdepth1-name"*.png"对应于minddepth选项。寻找。-mindepth2-maxdepth2-name"*.png"根据文件大小通过-size过滤文件大小。支持的文件大小单位如下b-block(512bytes)c-bytew-word(2bytes)k-kilobyteM-megabyteG-gigabyte例如,在当前目录find中找出文件大小超过100M的文件.-typef-size+100M根据访问/修改/更改时间支持以下时间类型。访问时间(-atime/day,-amin/minute):用户最后一次访问时间。修改时间(-mtime/day,-mmin/minute):文件最后修改的时间。更改时间(-ctime/day,-cmin/minute):文件数据元素(如权限等)的最后修改时间。比如查找1天内修改过的文件find。-typef-mtime-1查找上周find访问过的文件。-typef-atime-7将log目录下保存一周以上的日志文件,移至/tmp/old_logs。寻找。-typef-mtime+7-name"*.log"-execmv{}/tmp/old_logs\;注意:{}与-exec选项配合使用,匹配所有文件,然后替换为对应的.exe文件名。此外,\;用于指示命令的结束。如果不加,会出现如下提示find:-exec:noterminating";"或者“+”根据权限通过-perm实现。例如在当前目录find中找出权限为777的文件。-typef-perm777在当前目录下查找权限不是644的php文件find.-typef-name"*.php"!-perm644根据文件所有权查找属主为root的文件。-typef-userroot查找组为root的文件find。-typef-grouproot找到文件后,通过-ok、-exec执行命令。不同的是-ok会在执行命令前进行二次确认,而-exec则不会。看一个实际例子。删除当前目录下的所有js文件。使用-ok的效果如下,删除前有二次确认?findfind。-typef-name"*.js"-okrm{}\;"rm./1.js"?尝试-exec。直接删除查找。-typef-name"*.js"-execrm{}\;查找空文件的示例如下touch{1..9}.txtcho"hello">1.txtfind。-空的
