您的位置:首页 > 运维架构 > Linux

Linux下的find命令

2016-05-19 19:16 211 查看
描述:

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键的使用,这都不是事儿。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: