我们经常需要在Linux中查找一些文件的位置,而Linux中的find命令就是用来查找指定目录下的文件。语法findpath-option[-print][-exec-okcommand]{}\;参数说明:find根据以下规则判断路径和表达式,命令行第一个“-”,前面的部分是路径,后面是表达式的部分,如果表达式为空,则默认表达式路径为-print:一般是指find命令需要查找的目录路径,比如use.表示当前目录,path为空字符串,也是在当前路径下查找,用/表示系统根目录。有数十种表情部件可供选择。这里我们选择几个常用的部分。-namename,-inamename:文件名与name匹配的文件。iname忽略大小写-aminn:过去n分钟内读取-anewerfile:比file晚读取-atimen:过去n天读取-cminn:过去n分钟内修改-cnewerfile:比文件file更新的文件-ctimen:过去n天内修改过的文件-empty:空文件-gidnor-groupname:gidisnorYesgroupnameisname-ipathp,-pathp:路径名匹配p,ipath的文件将忽略大小写-sizen:文件大小为n个单位,b表示512字节的块,c表示字符数,k表示千字节,w表示两个字节。-typec:文件类型为c文件。d:目录c:字体设备文件b:块设备文件p:命名存储列f:通用文件l:符号链接s:socket-pidn:进程id为n的文件例子:一些常见的使用案例$find~-name"*.txt"-print#查看$HOME中的.txt文件,显示$find。-name"*.txt"-print#查看.txt结尾的文件$find.-name"[A-Z]*"-print#检查以大写字母开头的文件$find/etc-name"host*"-print#检查/etc目录中以host开头的文件$find.-name"[a-z][a-z][0–9][0–9].txt"-print#查看以两个小写字母和两个数字开头的txt文件$find.-perm755-print$查找。-perm-007-execls-l{}\;#使用-perm777$find查看所有用户可以读取、写入和执行的文件。-size+1000000c-print#检查长度大于1Mb的文件$find.-size100c-print#查看长度为100c的文件$find.-size+10-print#检查长度超过10块(1块=512字节)的文件$cd/$findetchomeapps-depth-print|cpio-ivcdC65536-o/dev/rmt0$find/etc-name"passwd*"-execgrep"cnscn"{}\;#查看是否有cnscn用户$find.-名字“姚*”|xargs文件$查找.-名字“姚*”|xargs回声“">/tmp/core.log$find.-name"yao*"|xargschmodo-w$find-nameapril*#在当前目录下查找以april开头的文件$find-nameapril*fprintfile#在当前目录下查找april开头的文件,并将结果输出到文件$find-nameap*-o-namemay*#查找ap或may开头的文件$find/mnt-nametom.txt-ftypevfat#在里面查找/mnt下名为tom.txt且文件系统类型为vfat的文件$find/mnt-namet.txt!-ftypevfat#在/mnt下查找名为tom.txt且文件系统类型不是vfat的文件$find/tmp-namewa*-typel#在/tmp$find/home-mtime-2下查找名称以wa开头且类型为符号链接的文件find/home-atime-1#查看1天内访问过的文件$find/home-mmin+60#查看/home下60分钟前修改过的文件$find/home-amin+30#查看访问过的文件最近30分钟$find/home-newertmp.txt#查看/home下更新时间比tmp.txt更近的文件或目录$find/home-anewertmp.txt#查看/home下的文件或目录whoseaccesstimeiscloserthantmp.txt$find/home-used-2??#列出文件或目录被更改后2天内被访问过的文件ordirectory$find/home-usercnscn#列出/home目录下属于用户cnscn的文件或目录$find/home-uid+501#列出/home目录下用户标识码大于的文件或目录501$find/home-groupcnscn#列出/home中group为cnscn的文件或目录$find/home-gid501#列出/home中groupid为501的文件或目录$find/home-nouser#List/home$find中不属于本地用户的文件或目录/home-nogroup#列出/home中不属于本地组的文件或目录$find/home-nametmp.txt-maxdepth4#列出tmpin/家。txt搜索深度最多3层$find/home-nametmp.txt-mindepth3#从第二层开始检查$find/home-empty#查找大小为0的文件或空目录$find/home-size+512k#??检查大于512k的文件$find/home-size-512k#??检查小于512k的文件$find/home-links+2#检查超过2个硬链接的文件或目录$find/home-perm0700#检查permissions700文件或目录$find/tmp-nametmp.txt-execcat{}\;$find/tmp-nametmp.txt-okrm{}\;$find/-amin-10#最后在系统中查找10分钟参观Askedfiles$find/-atime-2#查找最近48小时内在系统中访问过的文件$find/-empty#查找系统中为空的文件或文件夹$find/-groupcat#查找属于systemGroupcat的文件$find/-mmin-5#查找系统最近5分钟修改过的文件$find/-mtime-1#查找系统最后24小时修改过的文件$find/-nouser#查找系统中属于无效用户的文件$find/-userfred#查找系统中属于用户FRED的文件,并列出当前目录及其子目录下所有对应的文件(文件类型为c文件d:目录c:字体设备文件b:块设备文件p:命名存储f:通用文件l:符号链接s:socket)$find.-键入f$查找。-键入d$查找。!-键入d$查找。-类型l列出当前目录及其子目录中最近20天更新的所有文件$find。-ctime-20查找/var/log目录下变化时间在7天之前的普通文件,删除前询问:$find/var/log-typef-mtime+7-okrm{}\;查找上一个目录下属主有读写权限的文件,以及该文件所属组的用户和其他用户有读权限的文件:$find.-typef-perm644-execls-l{}\;查找系统中所有文件长度为0的普通文件并列出它们的完整路径:$find/-typef-size0-execls-l{}\;
