Linux下的find命令

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Xiao__Tian__/article/details/51456220

描述:

         Linux操作系统的学习其基础则为熟悉使用各种基础的操作命令,命令虽然很多,但对于初学者来说,掌握的常见命令却为数不多。例如:文件操作命令(file,mkdir,grep,diff,find,cat,ls等),系统安全命令(passwd,who,su,chomd,chown,umask等),系统管理命令(kill,top,free,at等),网络操作命令(ifconfig,ip,ping,ftp等),还有一些其他的常用命令(man,tar,unzip,gunzip等),主要就是这几个板块,其中隶属于文件操作命令下的find,其拥有强大的索引功能,可谓linux中的“明星”,值得剖析剖析。


★在此使用的是CentOS6.5版本,首先在工作目录下创建一个名为“cmd1和cmd2”的子目录,并在该目录下创建几个子文件,便于演练完成时统一删除释放资源。




※与其他常用的文件索引命令which/whereis/locate等不同,find的强大之处在于其索引方式的多样化,这点是其他索引命令不能企及的。


1.find(find  -print):打印当前目录下的目录列表和文件名。





2.find -name[文件名]:根据文件名或正则表达式进行匹配索引,其中name可替换为iname(iname为索引的文件名忽略大小写)。注:在linux中文件的后缀,如:.c,.txt等都是文件名,与windows下用以表示文件类型不同。

※可以看到,对于当前目录下有的话直接打印;若没有则什么也不显示,说明未找到。





3.find -name -a/-o/-not[文件名]:-a表示且的关系,-o表示或的关系,-not表示除此以外的文件(该-not的想法来自德摩根定律)






4.find -path:将文件的路径名作为参数进行索引。





5.find -atime/ctime/mtime  -[参数]:索引参数时间内未访问/访问过的文件,参数为负表示访问,为正表示未访问。atime表示最近一次访问,mtime表示最近一次修改,ctime最近一次属性修改,time表示的天,也可以换成时分秒等。

★索引当前目录下5天内已访问的文件






6.find -type -[参数]:根据文件类型索引。f,d,l,b,c,p,s分别对应了普通文件、目录文件、链接文件、块设备文件、字符设备文件、管道文件、套接字文件。







7.find -size [参数]:根据文件大小进行索引。例如:2M表示等于2M大小,-2M表示小于2M,+2M表示大于2M大小。






8.find -perm [参数]:根据文件的权限进行索引。比如:222则为查找当前目录下权限只为写的文件,-222则为所有类别用户必须满足写权限,+222则为只要own,group,other中有满足写权限的即可。






9.find -nouser -a -nogroup:查找既没有属主,也没有属组的文件。★这类文件通常为侵入系统的病毒文件(野文件),对于维护系统安全性尤为重要。通常在根目录下查找find / -nouser -a -nogroup。






10.find -maxdepth/mindepth [参数]:基于当前目录下的深度索引。

例如:find . -maxdepth 1 -type f:索引当前目录下深度为1的普通文件,可和上述命令组合使用,若为2则为向下索引2级(深度为2)的普通文件。


※cmd3为cmd2的子目录,cmd4为cmd3的子目录。





11.find -newer [文件名]:查找在此文件之后建立的文件。

※可以看到,查找到了在test.1后建立的test.2文件。






12.当执行完find操作时,其后可跟进后续执行命令。

常用的有-ls:查找后用于打印显示,-ok [commend]:查找到用以询问是否执行该文件,-exec [commend]:跳过询问,直接执行查找到的文件。



Learning Tips:

         熟练掌握Linux中常用的基础操作命令,在后续进行系统编程,跟进项目,或者系统维护时这些命令用起来得心应手,可能前期有些陌生,不过大量练习经常使用,加上tap键的使用,这都不是事儿。。。

展开阅读全文

没有更多推荐了,返回首页