本篇文章给大家分享的是有关如何理解find命令,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。find命令:find – search for files in a directory hierarchyfind [OPTIONS…] [查找路径] [查找条件] [处理动作]查找路径:默认为当前工作目录,可以指定具体的目录路径;查找条件:进行本次搜索的标准,可以是文件名、文件大小、文件类型、文件权限等等;默认是指定目录中的所有文件;处理动作:对于符合条件的文件进行某个处理操作;默认将查找结果输出到显示器;根据文件名查找:-name 文件名称,支持使用Globbing,(*, ?, [], [^]),根据关键字查找例:[root@localhost test]# find . -name “*.log” ./log_link.log ./log2014.log-iname 文件名称,忽略字母大小写,支持使用Globbing,(*, ?, [], [^])例:find / -iname活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看 qin根据文件的inode编号查找:-inum inode编号:通过给定的inode编号查找对应的文件名及路径;-samefile name:通过给定的文件名查找对应的inode编号,进而确定所有具有该inode编号的文件名及路径;-links n:查找链接数为n的所有文件;根据正则表达式查找:-regex patte开发云主机域名rn:以pattern匹配整个文件路径字符串,而不仅仅是给定文件的名称;根据文件的属主和属组进行查找:-user uname:根据属主为指定用户的用户名进行查找-uid UID:根据属主为某个UID进行查找-group gname:-gid GID:-nogroup:在文件的属组上没有组对应的组名;-nouser:在文件的属主上没有用户对应的用户名;根据文件的类型查找:-type 文件类型:b:块设备c:字符设备d:目录文件f:普通文件l:符号链接文件p:管道文件s:套接字文件-xtype 文件类型:符号链接文件的匹配需要配合其他的选项;根据时间戳进行查找:以天为单位:-atime [+|-]n:根据访问时间查找-ctime [+|-]n:根据改变时间查找-mtime [+|-]n:根据修改时间查找n:[n,n+1)+n:[n+1,+∞)-n:[now,n)以分钟为单位:-amin [+|-]n-cmin [+|-]n-mmin [+|-]n例子:查找/etc目录下最近一周内内容修改过且不属于root及suse用户的文件; find /etc -ctime -7 -a -user root -a -user suse例:在/ l o g s目录中查找更改时间在5日以前的文件并删除它们: find logs -type f -mtime +5 -exec -ok rm {} ;根据文件的大小进行查找:-size [+|-]n[cwbkMG]n:(n-1,n]-n:[0,n-1]+n:(n,+∞)例子:find -size +2k当前目录下所有大于2KB的文件;find -size 2k当前目录下所有1KB-2KB之间的文件;find -size -2k当前目录下所有小于1KB的文件;组合条件:-a:逻辑与,默认可以省略;-o:逻辑或-not, !:逻辑非例:查找/usr目录下不属于root、bin、centos等用户的文件; find /usr -not -user root -a -not -user bin -a -not -user centos逻辑组合条件遵循德摩根定律:非(A 与 B) == 非A 或 非B非(A 或 B) == 非A 与 非B根据权限查找:-perm [/|-]modemode:精确匹配指定的权限/mode:隐含了逻辑或的关系,任何一个权限位的权限中只要能有一个权限匹配,即可满足条件;-mode:隐含了逻辑与的关系,每一开发云主机域名个权限位的权限中都必须同时包含指定权限位,才能满足条件;例:查找/etc/rc.d/init.d目录下,所有用户都有执行权限并且其他用户有写权限的文件; find /etc/rc.d/init.d -prem /111 -a -perm -002所有都有 取反 任意一个没有! ( a与b与c ) = !a 或 !b 或 !c所有都没有 取反 任意一个有!( !a与!b与!c ) = a 或 b 或 c处理动作:-print:输出到显示屏幕,默认的动作;-ls:对与查找到的结果执行ls -li命令显示;例:查找/etc目录下所有用户都没有写权限的文件,并显示出其详细信息; find /etc -not -perm /222 -ls-exec COMMAND {} ;:-ok COMMAND {} ;:对于查找到的结果执行COMMAND命令;区别:-exec是非交互式的;-ok是交互式的;{}:占位符,用来引用被find命令查找到的所有的文件的路径信息;例:查找当前系统上没有属主或属组,且最近一个月内曾被访问过的文件,并将其属主属组均修改为root; find / -nouser -o nogroup -a -atime -30 -exec chown root:root {} -exec和-ok的取代执行操作:chmod a-r $(find -perm -444 -type f)find -perm -444 -type f | xargs chmod a-r注意:管道输送的是纯字符串信息,所以如果管道之后的命令不是处理字符串的命令,需要使用xargs命令将其转换成能够被后面命令处理的参数;例:在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR”,最后打印出所有包含”SYSCALL_VECTOR”的文件名 find /tmp -name “*.h” | xargs -n50 grep SYSCALL_VECTOR以上就是如何理解find命令,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注开发云行开发云主机域名业资讯频道。
本文从转载,原作者保留一切权利,若侵权请联系删除。
《如何理解find命令》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...